Browse Source

Feb 9 [UPDT] : Updated 'simplified_pos'

pull/267/merge
AjmalCybro 1 year ago
parent
commit
f08842f2fe
  1. 3
      simplified_pos/__manifest__.py
  2. 6
      simplified_pos/doc/RELEASE_NOTES.md
  3. BIN
      simplified_pos/static/description/assets/screenshots/1.png
  4. BIN
      simplified_pos/static/description/assets/screenshots/2.png
  5. BIN
      simplified_pos/static/description/assets/screenshots/3.png
  6. BIN
      simplified_pos/static/description/assets/screenshots/4.png
  7. BIN
      simplified_pos/static/description/assets/screenshots/5.png
  8. BIN
      simplified_pos/static/description/assets/screenshots/6.png
  9. BIN
      simplified_pos/static/description/assets/screenshots/7.png
  10. BIN
      simplified_pos/static/description/assets/screenshots/8.png
  11. BIN
      simplified_pos/static/description/assets/screenshots/9.png
  12. BIN
      simplified_pos/static/description/assets/screenshots/hero.gif
  13. BIN
      simplified_pos/static/description/assets/screenshots/s_pos_01.png
  14. BIN
      simplified_pos/static/description/assets/screenshots/s_pos_02.png
  15. BIN
      simplified_pos/static/description/assets/screenshots/s_pos_03.png
  16. BIN
      simplified_pos/static/description/assets/screenshots/s_pos_04.png
  17. BIN
      simplified_pos/static/description/assets/screenshots/s_pos_05.png
  18. BIN
      simplified_pos/static/description/assets/screenshots/s_pos_06.png
  19. BIN
      simplified_pos/static/description/assets/screenshots/s_pos_07.png
  20. BIN
      simplified_pos/static/description/assets/screenshots/s_pos_08.png
  21. BIN
      simplified_pos/static/description/assets/screenshots/s_pos_09.png
  22. 25
      simplified_pos/static/description/index.html
  23. 5
      simplified_pos/static/src/js/ProductScreen.js
  24. 24
      simplified_pos/static/src/js/ProductWidgetSimple.js
  25. 61
      simplified_pos/static/src/scss/pos.scss
  26. 3
      simplified_pos/static/src/xml/OrderWidget.xml
  27. 25
      simplified_pos/static/src/xml/ProductScreen.xml

3
simplified_pos/__manifest__.py

@ -21,7 +21,7 @@
############################################################################### ###############################################################################
{ {
'name': 'Simplified POS', 'name': 'Simplified POS',
'version': '16.0.1.0.0', 'version': '16.0.1.1.0',
'category': 'Point of Sale', 'category': 'Point of Sale',
'summary': 'All aspects of POS on a single page.', 'summary': 'All aspects of POS on a single page.',
'description': 'A straightforward point-of-sale system that enables ' 'description': 'A straightforward point-of-sale system that enables '
@ -39,7 +39,6 @@
'simplified_pos/static/src/js/ConfirmationPopup.js', 'simplified_pos/static/src/js/ConfirmationPopup.js',
'simplified_pos/static/src/js/PrintPopup.js', 'simplified_pos/static/src/js/PrintPopup.js',
'simplified_pos/static/src/js/ProductScreenPaymentLine.js', 'simplified_pos/static/src/js/ProductScreenPaymentLine.js',
'simplified_pos/static/src/js/ProductWidgetSimple.js',
'simplified_pos/static/src/scss/pos.scss', 'simplified_pos/static/src/scss/pos.scss',
'simplified_pos/static/src/xml/ProductScreen.xml', 'simplified_pos/static/src/xml/ProductScreen.xml',
'simplified_pos/static/src/xml/OrderWidget.xml', 'simplified_pos/static/src/xml/OrderWidget.xml',

6
simplified_pos/doc/RELEASE_NOTES.md

@ -4,3 +4,9 @@
#### ADD #### ADD
- Initial commit for Simplified POS - Initial commit for Simplified POS
#### 07.02.2024
#### Version 16.0.1.1.0
#### UPDT
- Updated Simplified POS to include control buttons and invoice button. Fixed the style Issues.

BIN
simplified_pos/static/description/assets/screenshots/1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

BIN
simplified_pos/static/description/assets/screenshots/2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

BIN
simplified_pos/static/description/assets/screenshots/3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

BIN
simplified_pos/static/description/assets/screenshots/4.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

BIN
simplified_pos/static/description/assets/screenshots/5.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

BIN
simplified_pos/static/description/assets/screenshots/6.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

BIN
simplified_pos/static/description/assets/screenshots/7.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

BIN
simplified_pos/static/description/assets/screenshots/8.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 KiB

BIN
simplified_pos/static/description/assets/screenshots/9.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

BIN
simplified_pos/static/description/assets/screenshots/hero.gif

Binary file not shown.

Before

Width:  |  Height:  |  Size: 257 KiB

After

Width:  |  Height:  |  Size: 316 KiB

BIN
simplified_pos/static/description/assets/screenshots/s_pos_01.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

BIN
simplified_pos/static/description/assets/screenshots/s_pos_02.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 140 KiB

BIN
simplified_pos/static/description/assets/screenshots/s_pos_03.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 159 KiB

BIN
simplified_pos/static/description/assets/screenshots/s_pos_04.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 KiB

BIN
simplified_pos/static/description/assets/screenshots/s_pos_05.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 KiB

BIN
simplified_pos/static/description/assets/screenshots/s_pos_06.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 177 KiB

BIN
simplified_pos/static/description/assets/screenshots/s_pos_07.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 172 KiB

BIN
simplified_pos/static/description/assets/screenshots/s_pos_08.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 184 KiB

BIN
simplified_pos/static/description/assets/screenshots/s_pos_09.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 KiB

25
simplified_pos/static/description/index.html

@ -165,7 +165,7 @@
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;"> <p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">
This is the new point This is the new point
of sale frame.</p> of sale frame.</p>
<img src="assets/screenshots/s_pos_01.png" class="img-thumbnail"> <img src="assets/screenshots/1.png" class="img-thumbnail">
</div> </div>
<div style="display: block; margin: 30px auto;"> <div style="display: block; margin: 30px auto;">
@ -174,7 +174,7 @@
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;"> <p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">
We can search for We can search for
products here.</p> products here.</p>
<img src="assets/screenshots/s_pos_02.png" class="img-thumbnail"> <img src="assets/screenshots/2.png" class="img-thumbnail">
</div> </div>
<div style="display: block; margin: 30px auto;"> <div style="display: block; margin: 30px auto;">
@ -186,7 +186,7 @@
clicked, it is added to the order lines and the total is clicked, it is added to the order lines and the total is
displayed beneath it. We can adjust the amount, displayed beneath it. We can adjust the amount,
price, and discount using the number pad.</p> price, and discount using the number pad.</p>
<img src="assets/screenshots/s_pos_03.png" class="img-thumbnail"> <img src="assets/screenshots/3.png" class="img-thumbnail">
</div> </div>
<div style="display: block; margin: 30px auto;"> <div style="display: block; margin: 30px auto;">
@ -197,16 +197,17 @@
We can select the We can select the
necessary payment options, which can be shown beneath the necessary payment options, which can be shown beneath the
summary.</p> summary.</p>
<img src="assets/screenshots/s_pos_04.png" class="img-thumbnail"> <img src="assets/screenshots/4.png" class="img-thumbnail">
</div> </div>
<div style="display: block; margin: 30px auto;"> <div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;"> <h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Choose Customer</h3> Choose Customer, Invoice</h3>
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;"> <p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">
By pressing the search By pressing the search button, you can choose a customer.
button, we may choose a customer.</p> Additionally, if you want to generate an invoice,
<img src="assets/screenshots/s_pos_05.png" class="img-thumbnail"> simply click the invoice button.</p>
<img src="assets/screenshots/5.png" class="img-thumbnail">
</div> </div>
<div style="display: block; margin: 30px auto;"> <div style="display: block; margin: 30px auto;">
@ -215,7 +216,7 @@
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;"> <p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">
Click this to validate Click this to validate
the order.</p> the order.</p>
<img src="assets/screenshots/s_pos_06.png" class="img-thumbnail"> <img src="assets/screenshots/6.png" class="img-thumbnail">
</div> </div>
<div style="display: block; margin: 30px auto;"> <div style="display: block; margin: 30px auto;">
@ -224,7 +225,7 @@
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;"> <p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">
Click confirm to Click confirm to
confirm order else click cancel.</p> confirm order else click cancel.</p>
<img src="assets/screenshots/s_pos_07.png" class="img-thumbnail"> <img src="assets/screenshots/7.png" class="img-thumbnail">
</div> </div>
<div style="display: block; margin: 30px auto;"> <div style="display: block; margin: 30px auto;">
@ -233,7 +234,7 @@
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;"> <p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">
Click print to print Click print to print
the order.</p> the order.</p>
<img src="assets/screenshots/s_pos_08.png" class="img-thumbnail"> <img src="assets/screenshots/8.png" class="img-thumbnail">
</div> </div>
<div style="display: block; margin: 30px auto;"> <div style="display: block; margin: 30px auto;">
@ -242,7 +243,7 @@
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;"> <p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">
To access the new To access the new
order, click New Order.</p> order, click New Order.</p>
<img src="assets/screenshots/s_pos_09.png" class="img-thumbnail"> <img src="assets/screenshots/9.png" class="img-thumbnail">
</div> </div>
</div> </div>
</div> </div>

5
simplified_pos/static/src/js/ProductScreen.js

@ -80,6 +80,11 @@ odoo.define('point_of_sale.customer', function (require) {
_selectLine(event) { _selectLine(event) {
this.env.pos.selectedOrder.select_orderline(event.detail.orderline); this.env.pos.selectedOrder.select_orderline(event.detail.orderline);
} }
toggleIsToInvoice() {
// click_invoice
this.currentOrder.set_to_invoice(!this.currentOrder.is_to_invoice());
this.render(true);
}
} }
Registries.Component.extend(ProductScreen, CustomerButtons); Registries.Component.extend(ProductScreen, CustomerButtons);

24
simplified_pos/static/src/js/ProductWidgetSimple.js

@ -1,24 +0,0 @@
odoo.define('point_of_sale.ProductsWidgetSimple', function (require) {
'use strict';
const Registries = require('point_of_sale.Registries');
const ProductsWidget = require('point_of_sale.ProductsWidget');
const ProductsWidgetSimple = (ProductsWidget) =>
class extends ProductsWidget {
setup() {
super.setup();
}
get productsToDisplay() {
/* This function is override to remove products showing before hand.*/
let list = [];
if (this.searchWord !== '') {
list = this.env.pos.db.search_product_in_category(
this.selectedCategoryId,
this.searchWord
);
}
return list.sort(function (a, b) { return a.display_name.localeCompare(b.display_name) });
}
};
Registries.Component.extend(ProductsWidget, ProductsWidgetSimple);
return ProductsWidgetSimple;
});

61
simplified_pos/static/src/scss/pos.scss

@ -1,20 +1,14 @@
.pos .leftpane { .pos .leftpane {
background: $gray-200; background: $gray-200;
float:left; float:left;
height: 98%; height: 100%;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
flex-grow: 1; flex-grow: 1;
width:30%; width:40%;
border: solid 5px teal;; max-height: 94vh;
&::-webkit-scrollbar { max-width: 65vh;
width: 0; border: solid 5px teal;
}
}
.pos .subwindow .subwindow-container-fix {
height: 100%;
position: relative;
overflow-y: scroll;;
&::-webkit-scrollbar { &::-webkit-scrollbar {
width: 0; width: 0;
} }
@ -24,11 +18,17 @@
flex-direction: column; flex-direction: column;
flex-grow: 1; flex-grow: 1;
height:100%; height:100%;
border :solid 1px teal;
overflow: hidden;; overflow: hidden;;
&::-webkit-scrollbar { &::-webkit-scrollbar {
width: 0; width: 0;
} }
} }
.pos .order {
max-width: none;
}
.pos .order .orderlines { .pos .order .orderlines {
&::-webkit-scrollbar { &::-webkit-scrollbar {
width: 0; width: 0;
@ -40,11 +40,17 @@
.payment-status-container { .payment-status-container {
margin-top: 70px !important; margin-top: 70px !important;
} }
.pos .right .invoice-btn {
display: flex;
justify-content: center;
}
.pos .right .invoice-btn .highlight {
width: 65% !important;
}
.paymentlines-container { .paymentlines-container {
height: 29% !important; height: 29% !important;
} }
.nextorder{ .nextorder{
margin-bottom:8px !important;
width:29% !important; width:29% !important;
} }
.pos .product-list-container .product-list-empty p { .pos .product-list-container .product-list-empty p {
@ -62,9 +68,18 @@
grid-template-columns: repeat(4, 1fr); grid-template-columns: repeat(4, 1fr);
text-align: center; text-align: center;
flex-grow: 1; flex-grow: 1;
width: 100%; width: 65%;
min-width: 216px; min-width: 216px;
} }
.pos .control-buttons {
display: grid;
flex-grow: 1;
width: 35%;
border :solid 1px teal;
}
.pos .leftpane .control-buttons .control-button {
flex:1 1 100%;
}
.pos .numpad button { .pos .numpad button {
border-color:teal; border-color:teal;
color:teal; color:teal;
@ -89,11 +104,9 @@
float:right; float:right;
background:white; background:white;
width:30%; width:30%;
height: 98.9%; height: 100%;
border: solid 5px teal; border: solid 5px teal;
box-sizing: border-box; max-height: 94vh;
margin-top: 2px;
margin-bottom: 8px;
} }
.pos .customer-button{ .pos .customer-button{
width: 65%; width: 65%;
@ -109,6 +122,9 @@
.pos .center{ .pos .center{
background:white; background:white;
height: 100%; height: 100%;
border: solid 5px teal;
border-top:none;
max-height: 94vh;
} }
.pos ._o_customer{ .pos ._o_customer{
text-align: justify; text-align: justify;
@ -148,18 +164,21 @@
font-size: 25px; font-size: 25px;
padding-top: 15px; padding-top: 15px;
} }
.pos .button.validation { .pos .button.validation {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
flex-direction: column; flex-direction: column;
height: calc(var(--btn-height-size) * 2.3);
border: none; border: none;
background: $primary; background: $primary;
color: #fff; color: #fff;
font-size: 14px; font-size: 14px;
font-weight: bold; font-weight: bold;
transition: all 150ms linear; transition: all 150ms linear;
height:16%;
border-bottom: solid 5px teal !important;
} }
.pos .amount-paymentmethod{ .pos .amount-paymentmethod{
padding-left: 40%; padding-left: 40%;
@ -179,14 +198,10 @@
} }
.pos .button.validation{ .pos .button.validation{
background:#39B8B8 !important; background:#39B8B8 !important;
margin-bottom: 13px !important;
} }
.highlight { .highlight {
width: 29.45% !important; width: 29.45% !important;
} }
.next {
border-bottom: solid 5px teal !important;
}
.paymentmethods-container { .paymentmethods-container {
overflow: scroll; overflow: scroll;
height: 49.125%; height: 49.125%;
@ -198,6 +213,8 @@
position: absolute; position: absolute;
width: 28.3%; width: 28.3%;
bottom: 0; bottom: 0;
padding-right: 0.6rem;
} }
.pos .search-bar-container.sb-product { .pos .search-bar-container.sb-product {
max-width: 100%; max-width: 100%;

3
simplified_pos/static/src/xml/OrderWidget.xml

@ -4,8 +4,7 @@
<t t-name="OrderWidget" t-inherit="point_of_sale.OrderWidget" <t t-name="OrderWidget" t-inherit="point_of_sale.OrderWidget"
t-inherit-mode="extension" owl="1"> t-inherit-mode="extension" owl="1">
<xpath expr="//div[hasclass('order-container')]" position="before"> <xpath expr="//div[hasclass('order-container')]" position="before">
<ProductsWidget <ProductsWidget mobileSearchBarIsShown="props.mobileSearchBarIsShown"/>
mobileSearchBarIsShown="props.mobileSearchBarIsShown"/>
<MobileOrderWidget t-if="env.isMobile" pane="state.mobile_pane" <MobileOrderWidget t-if="env.isMobile" pane="state.mobile_pane"
onSwitchPane.bind="switchPane"/> onSwitchPane.bind="switchPane"/>
</xpath> </xpath>

25
simplified_pos/static/src/xml/ProductScreen.xml

@ -6,9 +6,24 @@
<xpath expr="//div[hasclass('product-screen')]" position="replace"> <xpath expr="//div[hasclass('product-screen')]" position="replace">
<div class="leftpane pane-border"> <div class="leftpane pane-border">
<OrderWidget/> <OrderWidget/>
<div class="d-flex" style="display:flex">
<NumpadWidget activeMode="env.pos.numpadMode"/> <NumpadWidget activeMode="env.pos.numpadMode"/>
<div class="control-buttons">
<t t-if="env.isMobile and controlButtons.length > 3">
<div class="control-button"
t-on-click="_displayAllControlPopup">More...</div>
</t>
<t t-else="">
<t t-foreach="controlButtons" t-as="cb"
t-key="cb.name">
<t t-component="cb.component" t-key="cb.name"/>
</t>
</t>
</div>
</div>
</div> </div>
<div class="right"> <div class="right">
<div class="head"><center><h2>CUSTOMER</h2></center></div> <div class="head"><center><h2>CUSTOMER</h2></center></div>
<br/> <br/>
<br/> <br/>
@ -20,7 +35,16 @@
t-on-click="customerdetails"> t-on-click="customerdetails">
<i class="fa fa-search"/> <i class="fa fa-search"/>
</button> </button>
</center> </center>
<div class="d-flex justify-content-center align-items-center invoice-btn">
<button class="button invoice_button customer-button" style="font-size:16px;"
t-att-class="{ highlight: currentOrder.is_to_invoice() }"
t-on-click="toggleIsToInvoice">
<i class="fa fa-file-text-o"/>
Invoice
</button>
</div>
<div class="button nextorder validation" <div class="button nextorder validation"
t-att-class="{ highlight: !locked }" t-att-class="{ highlight: !locked }"
t-on-click="orderDone" style="background:#39B8B8;"> t-on-click="orderDone" style="background:#39B8B8;">
@ -76,5 +100,6 @@
<t t-esc="this.get_partner().phone"/> <t t-esc="this.get_partner().phone"/>
</t> </t>
</div> </div>
<!-- <PartnerListScreen/>-->
</t> </t>
</templates> </templates>
Loading…
Cancel
Save