i18n (Phase C batch 9): collectors, dashboard, monitoring, vouchers, cashier_reports, cashier_attendance ID/EN

This commit is contained in:
oxpoe committed 2026-10-09 07:54:34 +07:00
1 parent 69d6ebbd0e
commit d09ab217f9
8 files changed
+204 -72

No files matched your search

+12 -12
View File
@@ -2,7 +2,7 @@
<html lang="<%= lang || 'id' %>">
<head>
<meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1">
<title>Laporan Kasir | <%= company %></title>
<title><%= t('admin.cr.title','Laporan Kasir') %> | <%= company %></title>
<link rel="stylesheet" href="/vendor/bootstrap-icons/bootstrap-icons.min.css">
<link rel="stylesheet" href="/css/admin.css">
</head>
@@ -14,7 +14,7 @@
<div class="tb-title">
<button class="hb-menu" onclick="toggleSidebar()"><i class="bi bi-list"></i></button>
<i class="bi bi-journal-text"></i>
<span>Laporan Kasir</span>
<span><%= t('admin.cr.title','Laporan Kasir') %></span>
</div>
<div class="tb-right">
<span class="adm-badge" style="font-size:12px;opacity:0.7;"><%= company %></span>
@@ -35,7 +35,7 @@
<div class="card-bd" style="display:flex;gap:10px;flex-wrap:wrap;align-items:center">
<% if (cashiers && cashiers.length > 1) { %>
<select class="fs" style="min-width:240px" onchange="location='/admin/cashiers/reports?cashierId='+encodeURIComponent(this.value)">
<option value="">Semua Kasir</option>
<option value=""><%= t('admin.cr.all_cashier','Semua Kasir') %></option>
<% (cashiers || []).forEach(c => { %>
<option value="<%= c.id %>" <%= cashierId && Number(cashierId)===Number(c.id) ? 'selected' : '' %>><%= c.name %> (@<%= c.username %>)</option>
<% }) %>
@@ -43,16 +43,16 @@
<% } else if (cashiers && cashiers.length === 1) { %>
<span class="badge bm"><%= cashiers[0].name %><%= cashiers[0].username ? (' (@' + cashiers[0].username + ')') : '' %></span>
<% } %>
<span class="badge bm"><%= Number(summary?.count || 0) %> transaksi</span>
<span class="badge bm"><%= Number(summary?.count || 0) %> <%= t('admin.cr.tx','transaksi') %></span>
<span class="badge bs">Rp <%= Number(summary?.total || 0).toLocaleString('id-ID') %></span>
<span class="badge bm">Tagihan: <%= Number(summary?.invoice_count || 0) %> (Rp <%= Number(summary?.invoice_total || 0).toLocaleString('id-ID') %>)</span>
<span class="badge bm">Deposit Agent: <%= Number(summary?.topup_count || 0) %> (Rp <%= Number(summary?.topup_total || 0).toLocaleString('id-ID') %>)</span>
<span class="badge bm"><%= t('admin.cr.invoice','Tagihan:') %> <%= Number(summary?.invoice_count || 0) %> (Rp <%= Number(summary?.invoice_total || 0).toLocaleString('id-ID') %>)</span>
<span class="badge bm"><%= t('admin.cr.topup','Deposit Agent:') %> <%= Number(summary?.topup_count || 0) %> (Rp <%= Number(summary?.topup_total || 0).toLocaleString('id-ID') %>)</span>
</div>
</div>
<div class="card" style="margin-top:16px">
<div class="card-hd">
<h6><i class="bi bi-list-ul"></i> Riwayat Transaksi</h6>
<h6><i class="bi bi-list-ul"></i> <%= t('admin.cr.history','Riwayat Transaksi') %></h6>
</div>
<div class="tbl-wrap">
<table class="dtbl">
@@ -60,16 +60,16 @@
<tr>
<th><%= t('collector.col_time','Waktu') %></th>
<th>Kasir</th>
<th>Jenis</th>
<th>Detail</th>
<th><%= t('admin.cr.th_type','Jenis') %></th>
<th><%= t('admin.cr.th_detail','Detail') %></th>
<th class="num"><%= t('collector.col_amount','Nominal') %></th>
<th>Catatan</th>
<th><%= t('admin.cr.th_note','Catatan') %></th>
<th class="num">Ref</th>
</tr>
</thead>
<tbody>
<% if (!rows || rows.length === 0) { %>
<tr><td colspan="7" class="text-center text-muted" style="padding:24px">Belum ada transaksi kasir.</td></tr>
<tr><td colspan="7" class="text-center text-muted" style="padding:24px">Belum ada <%= t('admin.cr.tx','transaksi') %> kasir.</td></tr>
<% } else { %>
<% rows.forEach(r => { %>
<tr>
@@ -79,7 +79,7 @@
<% if (r.kind === 'agent_topup') { %>
<span class="badge bs">DEPOSIT</span>
<% } else { %>
<span class="badge bm">TAGIHAN</span>
<span class="badge bm"><%= t('admin.cr.badge_invoice','TAGIHAN') %></span>
<% } %>
</td>
<td style="font-size:12px">