Files
HRM-System/scratch/test-30-days.php

87 lines
2.8 KiB
PHP

<?php
require __DIR__.'/../vendor/autoload.php';
use Rats\Zkteco\Lib\Zkteco;
$ip = '192.168.254.135';
echo "Connecting to ZKTeco machine at {$ip}...\n";
$zk = new Zkteco($ip);
try {
$connected = $zk->connect();
if ($connected) {
echo "SUCCESS: Connected to ZKTeco machine!\n";
$zk->disableDevice();
echo "Fetching all attendance logs...\n";
$attendance = $zk->getAttendance();
$totalRecords = count($attendance);
echo "Total records on device: {$totalRecords}\n";
$records2026 = [];
$otherYears = [];
foreach ($attendance as $record) {
if (isset($record['timestamp'])) {
$year = substr($record['timestamp'], 0, 4);
if ($year === '2026') {
$records2026[] = $record;
} else {
if (!isset($otherYears[$year])) {
$otherYears[$year] = 0;
}
$otherYears[$year]++;
}
}
}
echo "Records in 2026: " . count($records2026) . "\n";
echo "Records in other years:\n";
foreach ($otherYears as $yr => $cnt) {
echo " Year {$yr}: {$cnt} records\n";
}
if (count($records2026) > 0) {
// Group by employee code (id)
$byEmployee = [];
foreach ($records2026 as $rec) {
$empId = $rec['id'];
if (!isset($byEmployee[$empId])) {
$byEmployee[$empId] = [];
}
$byEmployee[$empId][] = $rec['timestamp'];
}
echo "\nSummary of 2026 punches by Employee ID:\n";
echo str_repeat("-", 45) . "\n";
foreach ($byEmployee as $empId => $punches) {
echo "Employee ID: {$empId} -> " . count($punches) . " punches (First: " . min($punches) . " | Last: " . max($punches) . ")\n";
}
echo str_repeat("-", 45) . "\n";
// Sample of non-ID 2 records if any
$nonId2 = array_filter($records2026, function($r) { return $r['id'] != 2; });
echo "Non-Employee ID 2 records in 2026: " . count($nonId2) . "\n";
if (count($nonId2) > 0) {
echo "Sample of non-ID 2 records:\n";
$sampleNonId2 = array_slice($nonId2, 0, 10);
foreach ($sampleNonId2 as $s) {
echo "Emp ID: {$s['id']} | Time: {$s['timestamp']} | State: {$s['state']} | Type: {$s['type']}\n";
}
}
}
$zk->enableDevice();
$zk->disconnect();
} else {
echo "FAILED: Could not connect to ZKTeco machine.\n";
}
} catch (\Exception $e) {
echo "ERROR: " . $e->getMessage() . "\n";
}