{{ pendingSyncReports.length }} {{ currentLang === 'ar' ? 'طلبية غير مزامنة - اضغط لإعادة المحاولة' : 'commande(s) non synchronisée(s) - cliquer pour réessayer' }}

{{ t('supplements') }}

Gestion des suppléments

{{ t('enableSupplements') }}

{{ t('enableSupplementsNote') }}

{{ t('addSupplement') }}

{{ t('supplementsList') }} ({{ supplements.length }})

{{ supp.name }}

{{ supp.type === 'note' ? t('note') : t('supplement') }}

{{ t('noSupplements') }}

{{ t('lesCharges') }}

Gestion des dépenses

Charge Month {{ currentMonthDisplay }}

{{ t('currentMonthCharges') }}

{{ t('newCharge') }}

{{ t('chargesThisMonth') }} ({{ currentMonthCharges.length }})

{{ t('noChargesThisMonth') }}

{{ charge.name }}

{{ formatChargeDate(charge.charge_date) }}

{{ parseFloat(charge.amount).toFixed(2) }} DH
{{ t('totalMonth') }}
{{ currentMonthTotal.toFixed(2) }} DH

{{ t('chargesArchive') }}

{{ t('noArchive') }}

Charge Month {{ month.label }}

{{ month.charges.length }} charges

{{ month.total.toFixed(2) }} DH
{{ charge.name }}{{ formatChargeDate(charge.charge_date) }}
{{ parseFloat(charge.amount).toFixed(2) }} DH

{{ t('printersSettings') }}

Configuration des imprimantes

{{ t('printerBridgeUrlNote') }}

{{ t('printStationToggleNote') }}

{{ t('printer' + key.charAt(0).toUpperCase() + key.slice(1)) }}

{{ t('generalSettings') }}

Configuration de l'application

{{ t('sidebarSettings') }}

{{ t('sidebarNote') }}

{{ t('laCaisse') }}
{{ t('laCaisseTable') }}
{{ t('orders') }}
{{ t('gestionTable') }}
{{ t('gestionClient') }}
{{ t('gestionPaymentTPE') }}
{{ t('gestionLivraison') }}
{{ t('gestionGlovo') }}
{{ t('gestionEmporte') }}
{{ t('supplements') }}
{{ t('lesCharges') }}
{{ t('printersSettings') }}
{{ t('monRapportJour') }}
{{ t('myTickets') }}

{{ t('userPermissionsTitle') }}

{{ t('userPermissionsNote') }}

{{ t('noUsersForPermissions') }}

{{ t(item.labelKey) }}

{{ t('userZonePermissionsTitle') }}

{{ t('userZonePermissionsNote') }}

{{ t('noUsersForPermissions') }}

{{ zone.name }}

{{ t('noZonesYet') }}

{{ t('loginBackgroundImage') }}

{{ t('loginBackgroundHint') }}

{{ t('appColorSettings') }}

{{ t('currentColor') }}

{{ generalSettings.appColor.toUpperCase() }}

{{ t('colorName') }}

{{ getCurrentColorName() }}

{{ t('presetColors') }}

{{ t('customColor') }}

{{ t('colorHint') }}

{{ t('secondColor') }}

{{ t('gradientDirection') }}

{{ t('preview') }}

{{ t('themeSettings') }}

{{ t('tableStatusImages') }}

{{ t('tableStatusImagesNote') }}

{{ t('tableFree') }}

{{ t('tableOccupied') }}

{{ t('tableReserved') }}

{{ t('gestionLivraison') }}

{{ t('gestionGlovo') }}

{{ t('gestionEmporte') }}

{{ t('languageSettings') }}

{{ t('changeDateTime') }}

{{ t('timeToApply') }}

{{ String(customDate.year) }}-{{ String(customDate.month).padStart(2, '0') }}-{{ String(customDate.day).padStart(2, '0') }}
{{ String(customTime.hours).padStart(2, '0') }}:{{ String(customTime.minutes).padStart(2, '0') }}

ℹ️ {{ t('timeNote') }}

{{ t('dayStartSettings') }}

{{ t('dayStartHourLabel') }}

{{ generalSettings.dayStartHour || '00:00' }} → {{ getDayEndPreview() }}

ℹ️ {{ t('dayStartHint') }}

{{ t('annulationTicketSettings') }}

{{ t('enableAnnulationTicket') }}

{{ t('enableAnnulationTicketNote') }}

{{ t('posCategorySize') }}

{{ t('posCategorySizeHint') }}

{{ t('posProductSize') }}

{{ t('posProductSizeHint') }}

{{ t('posCategorySizeMobile') }}

{{ t('posCategorySizeMobileHint') }}

{{ t('posProductSizeMobile') }}

{{ t('posProductSizeMobileHint') }}

{{ t('laCaisse') }}

Table
{{ currentTimeDisplay }}Morocco

{{ zone.name }}

{{ getTableTypeLabel(table) }}
{{ table.number }}
{{ table.occupiedSince ? formatDuration(table.occupiedSince) : '00:00' }}
{{ t('dh') }} {{ table.orderTotal.toFixed(2) }}

{{ t('noTables') }} - {{ zone.name }}

{{ getTableTypeLabel(selectedTable) }} {{ selectedTable.number }} - {{ getZoneName(selectedTable.zone_id) }}
{{ selectedTable.status === 'free' ? t('tableFree') : selectedTable.status === 'occupied' ? t('tableOccupied') : selectedTable.status === 'paid' ? t('tablePaid') : t('tableReserved') }}{{ selectedTable.assignedServer }}
{{ currentTimeDisplay }}

{{ t('productCategories') }}

{{ cat }}

{{ t('noCategories') }}

{{ t('products') }}: {{ currentCategoryView }}

{{ item.name }}

{{ t('dh') }} {{ item.price }}

{{ t('noProducts') }}

{{ t('currentOrder') }}

{{ tableOrderNotes[selectedTable.id] }}

{{ getTableTypeLabel(selectedTable) }} #{{ selectedTable.number }} - {{ getZoneName(selectedTable.zone_id) }}

{{ item.name }}

{{ supp.name }}
{{ item.quantity }}
{{ t('dh') }} {{ (item.price * item.quantity).toFixed(2) }}

{{ t('tableLockedMessage') }}

{{ selectedTable.assignedServer }}

{{ t('tableLockedCanAdd') }}

{{ t('cartEmpty') }}

{{ t('clickToAdd') }}

{{ t('total') }}{{ t('dh') }} {{ selectedTableTotal.toFixed(2) }}
{{ selectedTableCart.length }} {{ t('order') }} {{ t('dh') }} {{ selectedTableTotal.toFixed(2) }}

{{ t('gestionTable') }}

Zones et tables

{{ t('zonesManagement') }}

{{ zone.name }}

{{ t('dragZoneHint') }}

{{ t('addTable') }} - {{ getZoneName(activeGestionTab) }}

{{ t('tablesList') }} - {{ getZoneName(activeGestionTab) }} ({{ getZoneTables(activeGestionTab).length }})

{{ (activeGestionTab === livraisonZoneId || activeGestionTab === glovoZoneId || activeGestionTab === emporteZoneId) ? t('commandeNumber') : t('tableNumber') }}{{ t('image') }}{{ t('status') }}{{ t('orderTotal') }}{{ t('actions') }}
{{ table.number }}
{{ table.status === 'free' ? t('tableFree') : table.status === 'occupied' ? t('tableOccupied') : table.status === 'paid' ? t('tablePaid') : t('tableReserved') }} {{ table.orderTotal ? t('dh') + ' ' + table.orderTotal.toFixed(2) : '-' }}
{{ t('noTables') }}

{{ t('gestionClient') }}

Clients et dettes
{{ (c.name||'?').charAt(0).toUpperCase() }}
{{ t('statusPaid') }}

{{ c.name }}

{{ c.phone || '-' }}

{{ c.address || '-' }}

{{ t('debtLabel') }} {{ t('dh') }} {{ clientTotalUnpaid(c.id).toFixed(2) }}

{{ t('noClients') }}

{{ selectedClient.name }}

{{ selectedClient.phone || '-' }} {{ selectedClient.address || '-' }} {{ selectedClient.cin || '-' }}

{{ t('unpaidInvoices') }} ({{ clientUnpaidDebts(selectedClient.id).length }})

{{ t('dh') }} {{ parseFloat(debt.total).toFixed(2) }} ({{ t('remaining') }}: {{ parseFloat(debt.remaining).toFixed(2) }})

{{ t('avanceGiven') }}: {{ t('dh') }} {{ parseFloat(debt.paid_amount).toFixed(2) }}

{{ debt.timestamp || debt.date }}

{{ t('noUnpaidInvoices') }}

{{ t('creditHistory') }}

{{ t('dh') }} {{ parseFloat(debt.total).toFixed(2) }}

{{ t('dateAdded') }}: {{ debt.timestamp || debt.date }} {{ t('by') }} {{ debt.server || '-' }}

{{ t('datePaid') }}: {{ debt.paid_date || '-' }} {{ debt.paid_date ? (t('by') + ' ' + (debt.paid_by || '-')) : '' }}

{{ t('noCreditHistory') }}

{{ t('reglerCredit') }}

#{{ d.order_id || d.id }} {{ t('dh') }} {{ parseFloat(d.remaining).toFixed(2) }}

{{ t('total') }}: {{ t('dh') }} {{ parseFloat(payingDebts[0].total).toFixed(2) }}

{{ t('totalSelectedDebt') }} ({{ payingDebts.length }})

{{ t('dh') }} {{ payingDebtsTotal.toFixed(2) }}

{{ t('remainingAmount') }}

{{ t('selectPaymentMethod') }}

{{ creditModalStep === 1 ? t('selectClient') : t('step2Avance') }}

...

{{ t('addClient') }}

{{ t('laCaisse') }}

{{ t('pos') }}
{{ currentTimeDisplay }} Morocco

{{ t('productCategories') }}

{{ cat }}

{{ t('noCategories') }}

{{ t('products') }}: {{ currentCategoryView }}

{{ item.name }}

{{ t('dh') }} {{ item.price }}

{{ t('noProducts') }}

{{ t('currentOrder') }}

{{ t('order') }} #{{ currentOrderId }}

{{ item.name }}

{{ supp.name }}
{{ item.quantity }}
{{ t('dh') }} {{ (item.price * item.quantity).toFixed(2) }}

{{ t('cartEmpty') }}

{{ t('clickToAdd') }}

{{ t('total') }}{{ t('dh') }} {{ cartTotal.toFixed(2) }}
{{ cart.length }} {{ t('order') }} {{ t('dh') }} {{ cartTotal.toFixed(2) }}

{{ t('dashboardOverview') }}

Vue d'ensemble

{{ t('laCaisse') }} ({{ dashboardPeriodLabel }})

{{ t('dh') }} {{ todaySales.totalRevenue }}

{{ t('totalItems') }}

{{ menuItems.length }}

{{ t('totalOrders') }}

{{ todayOrders.length }}

Meilleur Serveur

{{ bestServerInfo.name }}

{{ t('dh') }} {{ bestServerInfo.total }}

{{ bestServerInfo.orders }} commandes

{{ t('totalTPEToday') }}

{{ t('dh') }} {{ todayTPETotal.toFixed(2) }}

{{ todayTPECount }} {{ t('ticketsWord') }}

{{ t('totalLivraisonToday') }}

{{ t('dh') }} {{ todayLivraisonTotal.toFixed(2) }}

{{ todayLivraisonCount }} {{ t('ticketsWord') }}

{{ t('totalGlovoToday') }}

{{ t('dh') }} {{ todayGlovoTotal.toFixed(2) }}

{{ todayGlovoCount }} {{ t('ticketsWord') }}

{{ t('totalEmporteToday') }}

{{ t('dh') }} {{ todayEmporteTotal.toFixed(2) }}

{{ todayEmporteCount }} {{ t('ticketsWord') }}

{{ salesTrendChartTitle }}

{{ salesTrendMobileSummary.deltaPercent }}%

{{ t('revenueByProduct') }}

{{ idx + 1 }}
{{ product.name }} {{ t('dh') }} {{ product.revenue.toFixed(2) }}
{{ t('noDataAvailable') || '—' }}

{{ t('clientOverview') }}

{{ t('totalClients') }}

{{ totalClientsCount }}

{{ t('clientsWithDebt') }}

{{ clientsWithDebtCount }}

{{ t('totalOutstandingDebt') }}

{{ t('dh') }} {{ totalOutstandingDebt.toFixed(2) }}

{{ t('debtCollectedToday') }}

{{ t('dh') }} {{ todayCollectedDebts.toFixed(2) }}

{{ t('topDebtorClients') }}

{{ idx + 1 }}
{{ (c.name||'?').charAt(0).toUpperCase() }}
{{ c.name }} {{ t('dh') }} {{ c.debt.toFixed(2) }}

{{ t('noDebtorClients') }}

{{ t('tpeOverview') }}

{{ t('totalTPEToday') }}

{{ t('dh') }} {{ todayTPETotal.toFixed(2) }}

{{ t('nbTicketsTPE') }}

{{ todayTPECount }}

{{ t('avgTPE') }}

{{ t('dh') }} {{ (todayTPECount > 0 ? (todayTPETotal / todayTPECount) : 0).toFixed(2) }}

{{ t('lastTPETickets') }}

{{ t('ticketNumber') }} {{ t('dateTime') }} Serveur {{ t('total') }}
#{{ tk.orderId }} {{ formatDateTime(tk.timestamp || tk.report_timestamp) }} {{ tk.server || 'Inconnu' }} {{ parseFloat(tk.total).toFixed(2) }} DH
{{ t('noTPEPayments') }}

{{ t('livraisonOverview') }}

{{ t('totalLivraisonToday') }}

{{ t('dh') }} {{ todayLivraisonTotal.toFixed(2) }}

{{ t('nbCommandesLivraison') }}

{{ todayLivraisonCount }}

{{ t('avgLivraison') }}

{{ t('dh') }} {{ (todayLivraisonCount > 0 ? (todayLivraisonTotal / todayLivraisonCount) : 0).toFixed(2) }}

{{ t('lastLivraisonTickets') }}

{{ t('ticketNumber') }} {{ t('dateTime') }} Serveur {{ t('total') }}
#{{ tk.orderId }} {{ formatDateTime(tk.timestamp || tk.report_timestamp) }} {{ tk.server || 'Inconnu' }} {{ parseFloat(tk.total).toFixed(2) }} DH
{{ t('noLivraisonOrders') }}

{{ t('glovoOverview') }}

{{ t('totalGlovoToday') }}

{{ t('dh') }} {{ todayGlovoTotal.toFixed(2) }}

{{ t('nbCommandesGlovo') }}

{{ todayGlovoCount }}

{{ t('avgGlovo') }}

{{ t('dh') }} {{ (todayGlovoCount > 0 ? (todayGlovoTotal / todayGlovoCount) : 0).toFixed(2) }}

{{ t('lastGlovoTickets') }}

{{ t('ticketNumber') }} {{ t('dateTime') }} Serveur {{ t('total') }}
#{{ tk.orderId }} {{ formatDateTime(tk.timestamp || tk.report_timestamp) }} {{ tk.server || 'Inconnu' }} {{ parseFloat(tk.total).toFixed(2) }} DH
{{ t('noGlovoOrders') }}

{{ t('emporteOverview') }}

{{ t('totalEmporteToday') }}

{{ t('dh') }} {{ todayEmporteTotal.toFixed(2) }}

{{ t('nbCommandesEmporte') }}

{{ todayEmporteCount }}

{{ t('avgEmporte') }}

{{ t('dh') }} {{ (todayEmporteCount > 0 ? (todayEmporteTotal / todayEmporteCount) : 0).toFixed(2) }}

{{ t('lastEmporteTickets') }}

{{ t('ticketNumber') }} {{ t('dateTime') }} Serveur {{ t('total') }}
#{{ tk.orderId }} {{ formatDateTime(tk.timestamp || tk.report_timestamp) }} {{ tk.server || 'Inconnu' }} {{ parseFloat(tk.total).toFixed(2) }} DH
{{ t('noEmporteOrders') }}

{{ t('bestSelling') }} ({{ t('today') }})

#{{ t('product') }}{{ t('orders') }}{{ t('quantity') }}{{ t('revenue') }}
{{ index + 1 }} {{ product.name }} {{ product.orderCount }} {{ product.totalQuantity }} {{ t('dh') }} {{ product.revenue }}
{{ t('noDataToday') }}

{{ t('ticketsManagement') }}

Historique des tickets
Total: {{ filteredTickets.length }} tickets

{{ t('printedTickets') }}

{{ filteredTickets.length }} ticket(s)
{{ t('ticketNumber') }} {{ t('dateTime') }} {{ t('type') }} Serveur {{ t('paymentMethodCol') }} {{ t('total') }} {{ t('actions') }}
#{{ ticket.orderId }}
{{ formatTicketDateTime(ticket.timestamp) }}
{{ ticket.type }} {{ ticket.server || 'Inconnu' }} {{ ticket.paymentMethod === 'TPE' ? t('tpe') : (ticket.paymentMethod === 'Credit Payment' ? t('credit') : t('espece')) }} {{ parseFloat(ticket.total).toFixed(2) }} DH
{{ t('noTickets') }}
{{ ((ticketsCurrentPage - 1) * ticketsPerPage) + 1 }} - {{ Math.min(ticketsCurrentPage * ticketsPerPage, filteredTickets.length) }} / {{ filteredTickets.length }}
{{ ticketsCurrentPage }} / {{ ticketsTotalPages }}

Tickets PAR SERVEUR

{{ t('ticketNumber') }} {{ t('dateTime') }} {{ t('type') }} {{ t('paymentMethodCol') }} {{ t('total') }} {{ t('actions') }}
#{{ ticket.orderId }}
{{ formatTicketDateTime(ticket.timestamp) }}
{{ ticket.type }} {{ ticket.paymentMethod === 'TPE' ? t('tpe') : (ticket.paymentMethod === 'Credit Payment' ? t('credit') : t('espece')) }} {{ parseFloat(ticket.total).toFixed(2) }} DH
{{ selectedTicketServer ? `Aucun ticket pour ${selectedTicketServer}` : 'Veuillez sélectionner un serveur' }}

{{ t('manageOrders') }}

Suivi des commandes
{{ t('orderId') }}{{ t('customer') }}{{ t('date') }}{{ t('total') }}{{ t('status') }}{{ t('actions') }}

{{ t('noOrdersFound') }}

{{ order.id }}
{{ order.customerName }}
{{ order.phone }}
{{ formatDate(order.timestamp) }} {{ t('dh') }} {{ order.total }}

{{ t('articles') }}

{{ t('productManagement') }}
{{ t('image') }}{{ t('name') }}{{ t('category') }}{{ t('price') }}{{ t('stock') }}{{ t('actions') }}
{{ item.name }} {{ item.category }} {{ t('dh') }} {{ item.price }}
{{ t('noArticles') }}

{{ editingArticle ? t('editArticle') : t('addArticle') }}

{{ t('printerStationNote') }}

{{ t('enableStockTracking') }}

{{ t('stockTrackingNote') }}

{{ t('lowerFirstCaisse') }}

{{ articleImageError }}

{{ t('stockManagement') }}

{{ selectedStockProduct.name }}

{{ selectedStockProduct.category }}

{{ t('totalEntree') }}

{{ t('entree') }}

{{ stockStats.total_entree }}

{{ t('totalAdded') }}

{{ t('vente') }}

{{ stockStats.total_vente }}

{{ t('totalSold') }}

{{ t('reste') }}

{{ stockStats.reste }}

{{ t('inStore') }}

{{ t('nouveauStock') }}

{{ t('historique') }}

{{ t('date') }}{{ t('quantite') }}{{ t('prixUnitaire') }}{{ t('total') }}
{{ formatStockDate(entry.entry_date) }}{{ entry.quantity }}{{ parseFloat(entry.unit_price).toFixed(2) }} DH{{ parseFloat(entry.total_price).toFixed(2) }} DH
{{ t('noHistory') }}

{{ t('categories') }}

{{ t('sectionManagement') }}

{{ cat }}

{{ cat }}

{{ menuItems.filter(i=>i.category===cat).length }} {{ t('items') }}
{{ t('noCategoriesFound') }}

{{ editingCategory ? t('editCategory') : t('addCategory') }}

{{ t('lowerFirstCaisse') }}

{{ t('ticketSettings') }}

{{ t('receiptSettings') }} - {{ t('configuration') }}

{{ t('storeInfo') }}

{{ t('logoSettings') }}

{{ t('logoSizeHint') }}

{{ t('printKitchen') }}

{{ t('enableKitchen') }}

{{ t('wifiSettings') }}

{{ t('socialMedia') }}

WhatsApp
Facebook
Instagram

{{ t('footerMessage') }}

{{ t('footerMessageHint') }}

{{ t('livePreview') }}

{{ settings.store_name || 'FOX BURGER' }}

Reference Ticket: {{ currentOrderId || '---' }}
Date Ticket: {{ currentDate }}
Caissier: Admin
Wifi : {{ settings.wifi_ssid || 'SB COFFE SHOP' }}
Password: {{ settings.wifi_pass || 'SBFSB2025' }}
Articles Prix Qte Total
Item 1 10.00 1.00 10.00
Item 2 20.00 2.00 40.00
Nb d'articles: 2.00 Total Qte: 3.00
Total Final: 50.00 DH

Adresse: {{ settings.address || '58 Lot Al Massira LaColine' }}

Tel: {{ settings.phone || '06107007184' }}

WhatsApp: {{ settings.whatsapp }}
Facebook: {{ settings.facebook }}
Instagram: {{ settings.instagram }}
{{ settings.footer_message }}

{{ t('previewNote') }}

{{ t('account') }}

{{ t('userManagement') }}

{{ editingUser ? t('editUser') : t('addUser') }}

{{ t('username') }} {{ t('role') }} {{ t('name') }} {{ t('contact') }} {{ t('actions') }}
{{ user.username }} {{ user.role === 'admin' ? t('admin') : user.role === 'gerant' ? t('gerant') : t('employe') }} {{ user.name }} {{ user.contact }}
{{ t('noUsers') }}

{{ t('dailyReport') }}

{{ t('advancedReports') }}

{{ t('totalSales') }}

{{ t('dh') }} {{ reportStats.totalSales }}

{{ t('totalOrders') }}

{{ reportStats.totalOrders }}

{{ t('avgOrder') }}

{{ t('dh') }} {{ reportStats.avgOrder }}

{{ t('topCategory') }}

{{ reportStats.topCategory || '-' }}

Rapport du Jour

{{ ch.label }} {{ ch.total.toFixed(2) }} DH
{{ t('noProductsPeriod') }}
{{ t('totalGeneral') }} {{ displayedChannelTotal.toFixed(2) }} DH

{{ ch.label }}

{{ t('product') }} {{ t('quantity') }} Prix {{ t('total') }}
{{ prod.name }} {{ prod.quantity }} {{ (prod.revenue / prod.quantity).toFixed(2) }} DH {{ prod.revenue.toFixed(2) }} DH
{{ t('noProductsPeriod') }}
{{ t('totalOf') }} {{ ch.label }} {{ ch.total.toFixed(2) }} DH
{{ t('noProductsPeriod') }}
{{ t('totalGeneral') }} {{ displayedChannelTotal.toFixed(2) }} DH

{{ t('debtsCollectedSection') }}

{{ t('client') }} {{ t('date') }} {{ t('total') }}
{{ d.customerName || d.customer_name || d.client_name || d.clientName || '-' }} {{ formatDateTime(d.timestamp || d.date) }} {{ parseFloat(d.total).toFixed(2) }} DH
{{ t('noDebtsCollectedPeriod') }}
{{ t('totalDebtsCollected') }} {{ collectedDebtsTotal.toFixed(2) }} DH

{{ t('reglerParTPE') }}

{{ t('ticketNumber') }} {{ t('date') }} Serveur {{ t('total') }}
#{{ tk.orderId }} {{ formatDateTime(tk.timestamp || tk.report_timestamp) }} {{ tk.server || 'Inconnu' }} {{ parseFloat(tk.total).toFixed(2) }} DH
{{ t('noTPEPayments') }}
{{ t('totalTPECollected') }} {{ tpeCollectedTotal.toFixed(2) }} DH
{{ t('grandTotalCombined') }} {{ combinedGrandTotal.toFixed(2) }} DH

Rapport Par Serveur

{{ t('product') }} {{ t('quantity') }} Prix {{ t('total') }}
{{ prod.name }} {{ prod.quantity }} {{ (prod.revenue / prod.quantity).toFixed(2) }} DH {{ prod.revenue.toFixed(2) }} DH
{{ selectedServer ? 'Aucune vente pour ce serveur' : 'Veuillez sélectionner un serveur' }}
Total Serveur {{ serverTotalAmount.toFixed(2) }} DH

{{ t('ordersLog') }}

{{ t('date') }} {{ t('orderId') }} {{ t('type') }} {{ t('total') }} {{ t('actions') }}
{{ formatDateTime(order.timestamp || order.date) }} #{{ order.orderId }} {{ t('order') }} {{ parseFloat(order.total).toFixed(2) }} DH
{{ t('noOrders') }}
{{ t('page') }} {{ currentPage }} {{ t('of') }} {{ totalPages }}

{{ t('monRapportJour') }}

{{ currentUser?.name || currentUser?.username }}

{{ currentUser?.name || currentUser?.username }}

{{ t('product') }} {{ t('quantity') }} Prix {{ t('total') }}
{{ prod.name }} {{ prod.quantity }} {{ (prod.revenue / prod.quantity).toFixed(2) }} DH {{ prod.revenue.toFixed(2) }} DH
{{ t('noProductsPeriod') }}
Total {{ myReportTotalAmount.toFixed(2) }} DH

{{ t('myTickets') }}

{{ currentUser?.name || currentUser?.username }}
Total: {{ myFilteredTickets.length }} tickets

{{ t('myTickets') }}

{{ myFilteredTickets.length }} ticket(s)
{{ t('ticketNumber') }} {{ t('dateTime') }} {{ t('type') }} {{ t('paymentMethodCol') }} {{ t('total') }} {{ t('actions') }}
#{{ ticket.orderId }}
{{ formatTicketDateTime(ticket.timestamp) }}
{{ ticket.type }} {{ ticket.paymentMethod === 'TPE' ? t('tpe') : (ticket.paymentMethod === 'Credit Payment' ? t('credit') : t('espece')) }} {{ parseFloat(ticket.total).toFixed(2) }} DH
{{ t('noTickets') }}
{{ ((myTicketsCurrentPage - 1) * myTicketsPerPage) + 1 }} - {{ Math.min(myTicketsCurrentPage * myTicketsPerPage, myFilteredTickets.length) }} / {{ myFilteredTickets.length }}
{{ myTicketsCurrentPage }} / {{ myTicketsTotalPages }}

{{ t('gestionPaymentTPE') }}

Paiements par carte

{{ t('totalTPEPeriod') }}

{{ t('dh') }} {{ tpeTotal.toFixed(2) }}

{{ t('nbTicketsTPE') }}

{{ tpeCount }}

{{ t('avgTPE') }}

{{ t('dh') }} {{ tpeAvg.toFixed(2) }}

{{ t('ticketsTPEList') }}

{{ tpeCount }} ticket(s)
{{ t('ticketNumber') }} {{ t('dateTime') }} {{ t('type') }} Serveur {{ t('total') }} {{ t('actions') }}
#{{ ticket.orderId }} {{ formatTicketDateTime(ticket.timestamp) }} {{ ticket.type }} {{ ticket.server || 'Inconnu' }} {{ parseFloat(ticket.total).toFixed(2) }} DH
{{ t('noTPEPayments') }}
{{ t('totalTPEPeriod') }} {{ tpeTotal.toFixed(2) }} DH

{{ t('gestionLivraison') }}

Commandes à livrer

{{ t('noLivraisonZoneYet') }}

{{ t('gestionGlovo') }}

Commandes Glovo

{{ t('noGlovoZoneYet') }}

{{ t('gestionEmporte') }}

Commandes Emporte

{{ t('noEmporteZoneYet') }}

{{ t('addSupplements') }}

{{ selectedSupplementItem?.name }}

{{ t('availableSupplements') }}

{{ t('noSupplements') }}

{{ t('customNote') }}

{{ t('selectedSupplements') }} ({{ tempSupplements.length }})

{{ supp.name }}

{{ t('change') }} - {{ t('calculateChange') }}

{{ t('orderTotal') }}

{{ t('dh') }} {{ selectedTableTotal.toFixed(2) }}

{{ t('changeDue') }}

{{ t('dh') }} {{ tableChangeAmount.toFixed(2) }}

️ {{ t('insufficientAmount') }}

DIVER - {{ t('add') }}

{{ t('change') }} - {{ t('calculateChange') }}

{{ t('orderTotal') }}

{{ t('dh') }} {{ cartTotal.toFixed(2) }}

{{ t('changeDue') }}

{{ t('dh') }} {{ changeAmount.toFixed(2) }}

️ {{ t('insufficientAmount') }}

DIVER - {{ t('add') }}

{{ virtualKeyboardInput }}

{{ t('addOrderNote') }}