create stock and stock logs
This commit is contained in:
93
app/Console/Commands/ClearOpnameData.php
Normal file
93
app/Console/Commands/ClearOpnameData.php
Normal file
@@ -0,0 +1,93 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Commands;
|
||||
|
||||
use Illuminate\Console\Command;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use App\Models\Opname;
|
||||
use App\Models\OpnameDetail;
|
||||
use App\Models\Stock;
|
||||
use App\Models\StockLog;
|
||||
|
||||
class ClearOpnameData extends Command
|
||||
{
|
||||
protected $signature = 'opname:clear {--force : Force clear without confirmation}';
|
||||
protected $description = 'Clear all opname-related data including opnames, details, stocks, logs, and reset all IDs to 1';
|
||||
|
||||
public function handle()
|
||||
{
|
||||
if (!$this->option('force')) {
|
||||
if (!$this->confirm('This will delete ALL opname data, stocks, stock logs, and reset ALL IDs to 1. This is irreversible! Are you sure?')) {
|
||||
$this->info('Operation cancelled.');
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
$this->info('Starting complete data cleanup...');
|
||||
|
||||
try {
|
||||
// Disable foreign key checks
|
||||
DB::statement('SET FOREIGN_KEY_CHECKS=0;');
|
||||
|
||||
// 1. Clear and reset stock logs
|
||||
if (Schema::hasTable('stock_logs')) {
|
||||
DB::table('stock_logs')->truncate();
|
||||
DB::statement('ALTER TABLE stock_logs AUTO_INCREMENT = 1;');
|
||||
$this->info('✓ Cleared and reset stock_logs table');
|
||||
}
|
||||
|
||||
// 2. Clear and reset stocks
|
||||
if (Schema::hasTable('stocks')) {
|
||||
DB::table('stocks')->truncate();
|
||||
DB::statement('ALTER TABLE stocks AUTO_INCREMENT = 1;');
|
||||
$this->info('✓ Cleared and reset stocks table');
|
||||
}
|
||||
|
||||
// 3. Clear and reset opname details
|
||||
if (Schema::hasTable('opname_details')) {
|
||||
DB::table('opname_details')->truncate();
|
||||
DB::statement('ALTER TABLE opname_details AUTO_INCREMENT = 1;');
|
||||
$this->info('✓ Cleared and reset opname_details table');
|
||||
}
|
||||
|
||||
// 4. Clear and reset opnames
|
||||
if (Schema::hasTable('opnames')) {
|
||||
DB::table('opnames')->truncate();
|
||||
DB::statement('ALTER TABLE opnames AUTO_INCREMENT = 1;');
|
||||
$this->info('✓ Cleared and reset opnames table');
|
||||
}
|
||||
|
||||
// Re-enable foreign key checks
|
||||
DB::statement('SET FOREIGN_KEY_CHECKS=1;');
|
||||
|
||||
$this->info('Successfully cleared all data and reset IDs to 1!');
|
||||
$this->info('Cleared tables:');
|
||||
$this->info('- stock_logs');
|
||||
$this->info('- stocks');
|
||||
$this->info('- opname_details');
|
||||
$this->info('- opnames');
|
||||
|
||||
Log::info('Complete data cleared and IDs reset by command', [
|
||||
'user' => auth()->user() ? auth()->user()->id : 'system',
|
||||
'timestamp' => now(),
|
||||
'tables_cleared' => ['stock_logs', 'stocks', 'opname_details', 'opnames']
|
||||
]);
|
||||
|
||||
} catch (\Exception $e) {
|
||||
// Re-enable foreign key checks if they were disabled
|
||||
DB::statement('SET FOREIGN_KEY_CHECKS=1;');
|
||||
|
||||
$this->error('Error clearing data: ' . $e->getMessage());
|
||||
Log::error('Error in ClearOpnameData command: ' . $e->getMessage(), [
|
||||
'exception' => $e,
|
||||
'trace' => $e->getTraceAsString()
|
||||
]);
|
||||
|
||||
return 1; // Return error code
|
||||
}
|
||||
|
||||
return 0; // Return success code
|
||||
}
|
||||
}
|
||||
@@ -28,5 +28,9 @@ class Kernel extends ConsoleKernel
|
||||
$this->load(__DIR__.'/Commands');
|
||||
|
||||
require base_path('routes/console.php');
|
||||
|
||||
$this->commands = [
|
||||
Commands\ClearOpnameData::class,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user