remove status pending and complete

This commit is contained in:
2025-06-15 02:29:26 +07:00
parent 3fb598ae4d
commit 9cfb566aee
13 changed files with 666 additions and 236 deletions

View File

@@ -16,7 +16,7 @@ return new class extends Migration
DB::table('mutation_details')
->join('mutations', 'mutations.id', '=', 'mutation_details.mutation_id')
->where('mutation_details.quantity_approved', 0)
->whereNotIn('mutations.status', ['approved', 'completed', 'rejected'])
->whereNotIn('mutations.status', ['approved', 'rejected'])
->update(['mutation_details.quantity_approved' => null]);
Schema::table('mutation_details', function (Blueprint $table) {

View File

@@ -40,6 +40,9 @@ class AddAdditionalNotesAndRejectionFieldsToMutationsTable extends Migration
public function down()
{
Schema::table('mutations', function (Blueprint $table) {
$table->dropForeign(['rejected_by']);
$table->dropForeign(['cancelled_by']);
// Remove new fields
$table->dropColumn([
'reception_notes',

View File

@@ -0,0 +1,36 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\DB;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
// First, update any existing records that might have 'pending' or 'completed' status
DB::table('mutations')
->where('status', 'pending')
->update(['status' => 'sent']);
DB::table('mutations')
->where('status', 'completed')
->update(['status' => 'approved']);
// Then update the enum column to remove 'pending' and 'completed'
DB::statement("ALTER TABLE mutations MODIFY COLUMN status ENUM('sent', 'received', 'approved', 'rejected', 'cancelled') DEFAULT 'sent'");
}
/**
* Reverse the migrations.
*/
public function down(): void
{
// Restore the original enum with 'pending' and 'completed'
DB::statement("ALTER TABLE mutations MODIFY COLUMN status ENUM('pending', 'sent', 'received', 'approved', 'rejected', 'completed', 'cancelled') DEFAULT 'sent'");
}
};

View File

@@ -0,0 +1,50 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\DB;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
// Clean up existing data and update status enum without touching old migrations
// First backup existing data (optional)
// DB::statement("CREATE TABLE mutations_backup AS SELECT * FROM mutations");
// Update existing 'pending' status to 'sent'
DB::table('mutations')
->where('status', 'pending')
->update(['status' => 'sent']);
// Update existing 'completed' status to 'approved'
DB::table('mutations')
->where('status', 'completed')
->update(['status' => 'approved']);
// Update the enum to only include valid statuses
DB::statement("ALTER TABLE mutations MODIFY COLUMN status ENUM('sent', 'received', 'approved', 'rejected', 'cancelled') DEFAULT 'sent'");
// Update any orphaned mutation_details that reference completed status
DB::statement("
UPDATE mutation_details md
JOIN mutations m ON md.mutation_id = m.id
SET md.quantity_approved = md.quantity_requested
WHERE m.status = 'approved' AND md.quantity_approved IS NULL
");
}
/**
* Reverse the migrations.
*/
public function down(): void
{
// Restore original enum (if needed)
DB::statement("ALTER TABLE mutations MODIFY COLUMN status ENUM('pending', 'sent', 'received', 'approved', 'rejected', 'completed', 'cancelled') DEFAULT 'sent'");
}
};