fix patient sync
This commit is contained in:
parent
721ee30948
commit
40edd93fa5
|
|
@ -0,0 +1,47 @@
|
|||
@echo off
|
||||
setlocal EnableDelayedExpansion
|
||||
set "SCRIPTS=%~dp0"
|
||||
set "SCRIPTS=!SCRIPTS:~0,-1!"
|
||||
for %%F in ("!SCRIPTS!\..") do set "PROJECT_DIR=%%~fF"
|
||||
set "PHP=!SCRIPTS!\php\php.exe"
|
||||
|
||||
echo =============================================
|
||||
echo Fix Patient updated_at - Sync Repair
|
||||
echo =============================================
|
||||
echo.
|
||||
echo این اسکریپت زمان ویرایش بیماران رو در صف sync
|
||||
echo قرار میده تا دفعه بعد sync درست منتقل بشه.
|
||||
echo.
|
||||
|
||||
if not exist "!PHP!" (
|
||||
echo [ERROR] php.exe پیدا نشد: !PHP!
|
||||
pause & exit /b 1
|
||||
)
|
||||
|
||||
if not exist "!SCRIPTS!\fix_patient_updated_at.php" (
|
||||
echo [ERROR] fix_patient_updated_at.php پیدا نشد.
|
||||
pause & exit /b 1
|
||||
)
|
||||
|
||||
echo [1/2] Dry run - بررسی بیماران...
|
||||
echo.
|
||||
"!PHP!" "!SCRIPTS!\fix_patient_updated_at.php"
|
||||
echo.
|
||||
|
||||
set /p CONFIRM="آیا اعمال کنم؟ (y/n): "
|
||||
if /i "!CONFIRM!" neq "y" (
|
||||
echo لغو شد.
|
||||
pause & exit /b 0
|
||||
)
|
||||
|
||||
echo.
|
||||
echo [2/2] در حال نوشتن در sync_log...
|
||||
echo.
|
||||
"!PHP!" "!SCRIPTS!\fix_patient_updated_at.php" --apply
|
||||
echo.
|
||||
|
||||
echo =============================================
|
||||
echo Done! حالا از صفحه همگام سازی sync بزن.
|
||||
echo =============================================
|
||||
echo.
|
||||
pause
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
<?php
|
||||
|
||||
define('LARAVEL_START', microtime(true));
|
||||
|
||||
$projectRoot = dirname(__DIR__);
|
||||
require $projectRoot . '/vendor/autoload.php';
|
||||
|
||||
$app = require_once $projectRoot . '/bootstrap/app.php';
|
||||
$kernel = $app->make(Illuminate\Contracts\Console\Kernel::class);
|
||||
$kernel->bootstrap();
|
||||
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
$dryRun = ! in_array('--apply', $argv ?? []);
|
||||
|
||||
echo "\n=== Fix Patient updated_at in sync_log ===\n";
|
||||
echo $dryRun
|
||||
? "Mode: DRY RUN — برای اعمال واقعی با --apply اجرا کن\n\n"
|
||||
: "Mode: APPLY — در حال نوشتن در sync_log...\n\n";
|
||||
|
||||
$patients = DB::table('patients')->get(['id', 'first_name', 'last_name', 'updated_at']);
|
||||
|
||||
$now = now()->format('Y-m-d H:i:s');
|
||||
$count = 0;
|
||||
|
||||
foreach ($patients as $patient) {
|
||||
if (empty($patient->updated_at)) {
|
||||
echo " [SKIP] patient#{$patient->id} ({$patient->first_name} {$patient->last_name}) — updated_at خالیه\n";
|
||||
continue;
|
||||
}
|
||||
|
||||
echo " [" . ($dryRun ? 'DRY' : 'OK ') . "] patient#{$patient->id}"
|
||||
. " ({$patient->first_name} {$patient->last_name})"
|
||||
. " → updated_at: {$patient->updated_at}\n";
|
||||
|
||||
if (! $dryRun) {
|
||||
DB::table('sync_log')->insert([
|
||||
'datetime' => $now,
|
||||
'ip' => '127.0.0.1',
|
||||
'user' => 'fix_script',
|
||||
'table_name' => 'patients',
|
||||
'action' => 'updated',
|
||||
'record_id' => $patient->id,
|
||||
'changed_data' => json_encode(['updated_at' => $patient->updated_at], JSON_UNESCAPED_UNICODE),
|
||||
]);
|
||||
}
|
||||
|
||||
$count++;
|
||||
}
|
||||
|
||||
echo "\n─────────────────────────────────\n";
|
||||
echo "تعداد بیماران: {$count}\n";
|
||||
|
||||
if ($dryRun) {
|
||||
echo "\nبرای اعمال واقعی اجرا کن:\n php scripts/fix_patient_updated_at.php --apply\n";
|
||||
} else {
|
||||
echo "\n✓ {$count} entry در sync_log ایجاد شد.\n";
|
||||
echo "حالا از صفحه همگامسازی، sync رو اجرا کن تا لپتاپ دکتر بهروز بشه.\n";
|
||||
}
|
||||
|
||||
echo "\nDone!\n";
|
||||
Loading…
Reference in New Issue