📅 {{ t('page.daily_stats') }} 📆 {{ t('page.period_stats') }} 🏆 {{ t('page.top_workers') }} 📍 {{ t('page.current_activity') }} ⚙️ {{ t('page.settings') }} 🏢 {{ t('page.org_settings') }} 📋 {{ t('page.attendance') }} 🕐 {{ t('page.shift_analysis') }} 🌾 {{ t('page.area_efficiency') }} 🔄 {{ t('page.turnover') }} ✏️ {{ t('page.crop_audit') }} 📦 {{ t('page.box_efficiency') }}

{{ dataStatusIcon }} {{ dataStatusWarning }}

{{ t('common.loading') }}

{{ error }}

👥
{{ workersCount }} {{ t('stats.workers') }}
📦
{{ totalBoxes }} {{ t('stats.boxes') }}
💰
{{ totalEarnings.toFixed(0) }} {{ t('common.currency') }} {{ t('stats.earnings') }}
{{ averageEfficiency.toFixed(1) }}% {{ t('stats.efficiency') }}

📊 {{ t('chart.efficiency_distribution') }}

🥧 {{ t('chart.efficiency_shares') }}

🏆 {{ t('chart.top10_workers') }}

⏱️ {{ t('chart.work_types_analysis') }}

📈 {{ t('chart.productivity_vs_earnings') }}

👥 {{ t('tbl.title.workers_list') }}

{{ t('tbl.num') }} {{ t('tbl.name') }} {{ t('tbl.barcode') }} {{ t('tbl.boxes') }} {{ t('tbl.weight_kg') }} {{ t('tbl.hours') }} {{ t('tbl.piecework') }} {{ t('tbl.timework') }} {{ t('tbl.earnings') }} {{ t('tbl.efficiency') }} 📦/ч
{{ (currentPage - 1) * itemsPerPage + index + 1 }} {{ worker.name }} {{ worker.barcode }} {{ worker.total_boxes || worker.boxes_count || 0 }} {{ (worker.total_weight || worker.weight_kg || 0).toFixed(1) }} {{ worker.total_hours || '00:00' }} {{ worker.piecework_hours || '00:00' }} {{ worker.timework_hours || '00:00' }} {{ (worker.total_earnings || worker.earnings || 0).toFixed(2) }} {{ t('common.currency') }} {{ (worker.efficiency_percent || worker.efficiency_score || 0).toFixed(1) }}% {{ worker.scan_boxes_per_hour || worker.boxes_per_hour || 0 }}
👥
{{ workersCount }} {{ t('stats.workers') }}
📦
{{ totalBoxes }} {{ t('stats.boxes') }}
💰
{{ totalEarnings.toFixed(0) }} {{ t('common.currency') }} {{ t('stats.earnings') }}
{{ averageEfficiency.toFixed(1) }}% {{ t('stats.efficiency') }}

📊 {{ t('chart.efficiency_distribution') }}

🥧 {{ t('chart.efficiency_shares') }}

🏆 {{ t('chart.top10_workers') }}

⏱️ {{ t('chart.work_types_analysis') }}

📈 {{ t('chart.productivity_vs_earnings') }}

👥 {{ t('tbl.title.workers_period') }}

{{ t('tbl.num') }} {{ t('tbl.name') }} {{ t('tbl.days') }} {{ t('tbl.boxes') }} {{ t('tbl.weight') }} {{ t('tbl.hours') }} {{ t('tbl.earnings') }} {{ t('tbl.efficiency') }} 📦/ч
{{ (currentPage - 1) * itemsPerPage + index + 1 }} {{ worker.name }} {{ worker.days_worked || 0 }} {{ worker.total_boxes || worker.boxes_count || 0 }} {{ (worker.total_weight || 0).toFixed(1) }} {{ worker.total_hours || '00:00' }} {{ (worker.total_earnings || 0).toFixed(2) }} {{ t('common.currency') }} {{ (worker.efficiency_percent || 0).toFixed(1) }}% {{ worker.scan_boxes_per_hour || worker.boxes_per_hour || 0 }}
{{ index + 1 }}

{{ worker.name }}

📦 {{ worker.total_boxes || worker.boxes_count }} {{ t('common.pcs') }} 💰 {{ (worker.total_earnings || worker.earnings || 0).toFixed(0) }} {{ t('common.currency') }} 📅 {{ worker.days_worked }} {{ t('common.days_short') }}
{{ (worker.efficiency_percent || 0).toFixed(1) }}% {{ t('top.efficiency') }}

{{ t('top.no_data') }}

{{ activity.worker_name || activity.name || activity.barcode }} {{ activity.time_start }} - {{ activity.time_stop || t('common.now') }} → {{ activity.time_stop }}
📍 {{ activity.area_name }} 🔧 {{ activity.work_type_name }} 📦 {{ activity.quantity }} {{ t('common.pcs') }} ⚖️ {{ activity.weight }} {{ t('common.kg') }} 💰 {{ formatMoney(activity.total_pay) }}

📭 {{ t('current.no_activity') }}

📦 {{ t('settings.piecework_coefficient') }}

{{ t('settings.piecework_formula') }}

⏱️ {{ t('settings.timework_coefficients') }}

{{ t('settings.timework_formula') }}

🎯 {{ t('settings.efficiency_thresholds') }}

{{ settings.efficiency.thresholds.medium }}+

🗄️ {{ t('settings.org_cache') }}

{{ t('settings.cache_help') }}

{{ t('settings.dict_ttl_hint') }}
{{ t('settings.workers_ttl_hint') }}
{{ reportData.total_workers }}
{{ t('report.workers_total') }}
{{ reportData.dates ? reportData.dates.length : 0 }}
{{ t('report.days_in_period') }}
{{ t('table.worker') }} {{ t('report.days_present') }} {{ t('report.total_hours') }} {{ d.substring(5) }}
{{ w.worker_name }} {{ w.days_present }} {{ w.total_hours }}

{{ t('report.select_period') }}

{{ reportData.total_records }}
{{ t('report.total_records') }}
{{ reportData.peak_hour }}:00
{{ t('report.peak_hour') }}
{{ reportData.shift_categories.morning }}
{{ t('report.morning') }}
{{ reportData.shift_categories.afternoon }}
{{ t('report.afternoon') }}
{{ t('report.hour') }} {{ t('report.record_count') }} {{ t('report.unique_workers') }}
{{ h.hour }}:00 — {{ h.hour }}:59 {{ h.count }} {{ h.unique_workers }}

{{ t('report.select_period') }}

{{ reportData.total_areas }}
{{ t('report.areas_count') }}
{{ t('table.area') }} {{ t('report.area_size_ha') }} {{ t('report.qty_total') }} {{ t('report.qty_per_ha') }} {{ t('report.weight_total') }} {{ t('report.weight_per_ha') }} {{ t('report.hours_total') }} {{ t('report.qty_per_hour') }} {{ t('report.workers_count') }}
{{ a.area_name }} {{ a.area_size }} {{ a.total_quantity }} {{ a.quantity_per_ha }} {{ a.total_weight }} {{ a.weight_per_ha }} {{ a.total_hours }} {{ a.quantity_per_hour }} {{ a.unique_workers }}

{{ t('report.select_period') }}

{{ reportData.active_at_start }}
{{ t('report.active_at_start') }}
{{ reportData.active_at_end }}
{{ t('report.active_at_end') }}
+{{ reportData.hired_count }}
{{ t('report.hired') }}
-{{ reportData.fired_count }}
{{ t('report.fired') }}
{{ reportData.turnover_rate }}%
{{ t('report.turnover_rate') }}

🟢 {{ t('report.hired_list') }}

{{ t('table.worker') }}{{ t('report.hiring_date') }}
{{ w.name }}{{ w.hiring_date }}

🔴 {{ t('report.fired_list') }}

{{ t('table.worker') }}{{ t('report.firing_date') }}
{{ w.name }}{{ w.firing_date }}

{{ t('report.select_period') }}

{{ reportData.summary.total_modifications }}
{{ t('report.total_modifications') }}
{{ reportData.summary.quantity_delta }}
{{ t('report.qty_delta') }}
{{ reportData.summary.weight_delta }}
{{ t('report.weight_delta') }}

{{ t('report.by_user') }}

{{ t('report.user') }}{{ t('report.count') }}Δ {{ t('report.quantity') }}Δ {{ t('report.weight') }}
{{ userName }}{{ stats.count }} {{ stats.qty_delta }} {{ stats.wt_delta }}
{{ t('report.date_mod') }} {{ t('table.worker') }} {{ t('table.area') }} {{ t('report.class') }} {{ t('report.user') }} {{ t('report.qty_before') }} {{ t('report.qty_after') }} Δ
{{ e.date_time_mod }} {{ e.worker_name }} {{ e.area_name }} {{ e.class_name }} {{ e.user_name }} {{ e.quantity_before }} {{ e.quantity_after }} {{ e.quantity_delta }}

{{ reportData.message }}

{{ t('report.select_period') }}

{{ reportData.summary.total_workers }}
{{ t('report.workers') }}
{{ reportData.summary.total_boxes }}
{{ t('report.total_boxes') }}
{{ reportData.summary.total_hours }}ч
{{ t('report.total_hours') }}
{{ reportData.summary.avg_boxes_per_hour }}
{{ t('report.avg_bph') }}
# {{ t('table.worker') }} {{ t('report.box_count') }} {{ t('report.first_scan') }} {{ t('report.last_scan') }} {{ t('report.duration') }} {{ t('report.boxes_per_hour') }} {{ t('report.weight_kg') }} {{ t('report.days_worked') }}
{{ idx + 1 }} {{ w.name }} {{ w.box_count }} {{ w.first_scan ? w.first_scan.substring(11, 16) : '—' }} {{ w.last_scan ? w.last_scan.substring(11, 16) : '—' }} {{ w.duration_display }} {{ w.boxes_per_hour }} {{ w.total_weight }} {{ w.days_worked }}

{{ reportData.message }}

{{ t('report.select_period') }}