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 } }