[FIX] open_workshop: Das Datum vor dem Kunden in der POS Sidebar zeigt nun das Eincheckdatum an
- Datum wird nun im Format 'dd.mm. hh:mm' angezeigt (analog zu Odoo 17 TicketScreen). - Name rechtsbündig dargestellt, Datum linksbündig für bessere Lesbarkeit. - Tooltip bei langen Kundennamen zeigt vollständigen Namen beim Hover.
This commit is contained in:
parent
a1b98c41eb
commit
a1618af034
|
|
@ -1,3 +1,24 @@
|
||||||
.ows-sidebar { width: 220px; }
|
.ows-sidebar { width: 220px; }
|
||||||
.order-entry:hover { cursor: pointer; }
|
.order-entry:hover { cursor: pointer; }
|
||||||
.order-entry.selected { background-color: #007bff; color: white; }
|
.order-entry.selected { background-color: #007bff; color: white; }
|
||||||
|
|
||||||
|
.sidebar-line {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
gap: 0.5em;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
padding: 0.2em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar-date {
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar-name {
|
||||||
|
flex-shrink: 1;
|
||||||
|
text-align: right;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import { useService } from "@web/core/utils/hooks";
|
||||||
import { usePos } from "@point_of_sale/app/store/pos_hook";
|
import { usePos } from "@point_of_sale/app/store/pos_hook";
|
||||||
import { _t } from "@web/core/l10n/translation";
|
import { _t } from "@web/core/l10n/translation";
|
||||||
import { ConfirmPopup } from "@point_of_sale/app/utils/confirm_popup/confirm_popup";
|
import { ConfirmPopup } from "@point_of_sale/app/utils/confirm_popup/confirm_popup";
|
||||||
|
import { deserializeDateTime, formatDateTime, parseDateTime } from "@web/core/l10n/dates";
|
||||||
|
|
||||||
export class OwsPosCustomerSidebar extends Component {
|
export class OwsPosCustomerSidebar extends Component {
|
||||||
static template = "open_workshop.OwsPosCustomerSidebar";
|
static template = "open_workshop.OwsPosCustomerSidebar";
|
||||||
|
|
@ -19,6 +19,7 @@ export class OwsPosCustomerSidebar extends Component {
|
||||||
addOrder() {
|
addOrder() {
|
||||||
this.pos.add_new_order(); // neue Order wird aktive Order
|
this.pos.add_new_order(); // neue Order wird aktive Order
|
||||||
this.pos.selectPartner();
|
this.pos.selectPartner();
|
||||||
|
this.env.bus.trigger('partner-changed'); // ✅ korrektes Event feuern
|
||||||
}
|
}
|
||||||
|
|
||||||
async removeCurrentOrder() {
|
async removeCurrentOrder() {
|
||||||
|
|
@ -47,6 +48,7 @@ export class OwsPosCustomerSidebar extends Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Hinweis: Weitere Funktionen wie Sync mit Server (siehe ticket_screen.js) können hier ergänzt werden.
|
// Hinweis: Weitere Funktionen wie Sync mit Server (siehe ticket_screen.js) können hier ergänzt werden.
|
||||||
|
this.env.bus.trigger('partner-changed'); // ✅ korrektes Event feuern
|
||||||
}
|
}
|
||||||
|
|
||||||
openTicketScreen() {
|
openTicketScreen() {
|
||||||
|
|
@ -58,10 +60,15 @@ export class OwsPosCustomerSidebar extends Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
getDate(order) {
|
getDate(order) {
|
||||||
const date = new Date(order.creationDate || order.creation_date || Date.now());
|
const date = new Date(order.date_order);
|
||||||
return date.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' });
|
const dd = String(date.getDate()).padStart(2, '0');
|
||||||
|
const mm = String(date.getMonth() + 1).padStart(2, '0');
|
||||||
|
const hh = String(date.getHours()).padStart(2, '0');
|
||||||
|
const mi = String(date.getMinutes()).padStart(2, '0');
|
||||||
|
return `${dd}.${mm}. ${hh}:${mi}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
getPartner(order) {
|
getPartner(order) {
|
||||||
return order.get_partner()?.name || "Kein Kunde";
|
return order.get_partner()?.name || "Kein Kunde";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,10 @@
|
||||||
t-att-class="order === pos.get_order() ? 'bg-primary text-white' : 'bg-white'"
|
t-att-class="order === pos.get_order() ? 'bg-primary text-white' : 'bg-white'"
|
||||||
t-on-click="() => selectOrder(order)"-->
|
t-on-click="() => selectOrder(order)"-->
|
||||||
<div t-att-class="'order-entry' + (order === pos.get_order() ? ' selected' : '')" t-on-click="() => this.selectOrder(order)">
|
<div t-att-class="'order-entry' + (order === pos.get_order() ? ' selected' : '')" t-on-click="() => this.selectOrder(order)">
|
||||||
<div><t t-esc="getDate(order)"/> – <t t-esc="getPartner(order)"/></div>
|
<div class="sidebar-line">
|
||||||
|
<span class="sidebar-date"><t t-esc="getDate(order)"/></span>
|
||||||
|
<span class="sidebar-name" t-att-title="getPartner(order)"><t t-esc="getPartner(order)"/></span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</t>
|
</t>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user