[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:
Matthias Lotz 2025-06-03 17:43:44 +02:00
parent a1b98c41eb
commit a1618af034
3 changed files with 35 additions and 4 deletions

View File

@ -1,3 +1,24 @@
.ows-sidebar { width: 220px; }
.order-entry:hover { cursor: pointer; }
.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;
}

View File

@ -5,7 +5,7 @@ import { useService } from "@web/core/utils/hooks";
import { usePos } from "@point_of_sale/app/store/pos_hook";
import { _t } from "@web/core/l10n/translation";
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 {
static template = "open_workshop.OwsPosCustomerSidebar";
@ -19,6 +19,7 @@ export class OwsPosCustomerSidebar extends Component {
addOrder() {
this.pos.add_new_order(); // neue Order wird aktive Order
this.pos.selectPartner();
this.env.bus.trigger('partner-changed'); // ✅ korrektes Event feuern
}
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.
this.env.bus.trigger('partner-changed'); // ✅ korrektes Event feuern
}
openTicketScreen() {
@ -58,10 +60,15 @@ export class OwsPosCustomerSidebar extends Component {
}
getDate(order) {
const date = new Date(order.creationDate || order.creation_date || Date.now());
return date.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' });
const date = new Date(order.date_order);
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) {
return order.get_partner()?.name || "Kein Kunde";
}

View File

@ -15,7 +15,10 @@
t-att-class="order === pos.get_order() ? 'bg-primary text-white' : 'bg-white'"
t-on-click="() => 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>
</t>
</div>