diff --git a/app/Console/Commands/ImportarExcelLimpio.php b/app/Console/Commands/ImportarExcelLimpio.php index de40db8..4725cd5 100644 --- a/app/Console/Commands/ImportarExcelLimpio.php +++ b/app/Console/Commands/ImportarExcelLimpio.php @@ -67,16 +67,17 @@ class ImportarExcelLimpio extends Command $precioLimpio = (float) str_replace(['$', ' ', ','], '', $precioRaw); // 5. Creación o Actualización - Product::updateOrCreate( + Product::withTrashed()->updateOrCreate( ['name' => $nombreFinal], [ 'description' => $descripcionRaw, 'type' => $tipoFinal, 'cost' => $costoLimpio, 'price' => $precioLimpio, - 'suppliers_id' => $proveedorId, // Asociación dinámica + 'suppliers_id' => $proveedorId, 'stock_quantity' => 20, 'min_stock_alert' => 5, + 'deleted_at' => null, ] ); @@ -87,9 +88,6 @@ class ImportarExcelLimpio extends Command $this->info("¡Éxito! Se procesaron {$contador} productos con sus respectivos proveedores."); } - /** - * Crea los proveedores básicos si no existen para evitar errores de integridad. - */ private function asegurarProveedores() { $proveedores = [ @@ -99,9 +97,13 @@ class ImportarExcelLimpio extends Command ]; foreach ($proveedores as $id => $name) { - Supplier::firstOrCreate( + Supplier::withTrashed()->firstOrCreate( ['id' => $id], - ['name' => $name, 'phone' => '0000000000'] + [ + 'name' => $name, + 'phone' => '0000000000', + 'deleted_at' => null + ] ); } } diff --git a/app/Models/Client.php b/app/Models/Client.php index 6286e3f..5627d17 100644 --- a/app/Models/Client.php +++ b/app/Models/Client.php @@ -4,10 +4,11 @@ namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; - +use Illuminate\Database\Eloquent\SoftDeletes; class Client extends Model { use HasFactory; + use SoftDeletes; protected $guarded = []; protected $fillable = ['name', 'phone', 'email', 'address']; diff --git a/app/Models/Product.php b/app/Models/Product.php index 664995f..4411dd2 100644 --- a/app/Models/Product.php +++ b/app/Models/Product.php @@ -4,10 +4,12 @@ namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; +use Illuminate\Database\Eloquent\SoftDeletes; class Product extends Model { use HasFactory; + use SoftDeletes; protected $fillable = [ 'name', 'description', diff --git a/app/Models/Supplier.php b/app/Models/Supplier.php index bc3da55..fa7b1ab 100644 --- a/app/Models/Supplier.php +++ b/app/Models/Supplier.php @@ -2,9 +2,11 @@ namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; +use Illuminate\Database\Eloquent\SoftDeletes; class Supplier extends Model { use HasFactory; + use SoftDeletes; protected $fillable = [ 'name', 'phone', diff --git a/database/migrations/2026_05_27_192118_add_soft_deletes_to_products_table.php b/database/migrations/2026_05_27_192118_add_soft_deletes_to_products_table.php new file mode 100644 index 0000000..5e95be0 --- /dev/null +++ b/database/migrations/2026_05_27_192118_add_soft_deletes_to_products_table.php @@ -0,0 +1,22 @@ +softDeletes(); + }); + } + + public function down(): void + { + Schema::table('products', function (Blueprint $table) { + $table->dropSoftDeletes(); + }); + } +}; \ No newline at end of file diff --git a/database/migrations/2026_05_27_193531_add_soft_deletes_to_clients_table.php b/database/migrations/2026_05_27_193531_add_soft_deletes_to_clients_table.php new file mode 100644 index 0000000..932f360 --- /dev/null +++ b/database/migrations/2026_05_27_193531_add_soft_deletes_to_clients_table.php @@ -0,0 +1,22 @@ +softDeletes(); + }); +} + +public function down(): void +{ + Schema::table('clients', function (Blueprint $table) { + $table->dropSoftDeletes(); + }); +} +}; diff --git a/database/migrations/2026_05_27_193615_add_soft_deletes_to_suppliers_table.php b/database/migrations/2026_05_27_193615_add_soft_deletes_to_suppliers_table.php new file mode 100644 index 0000000..cd5b410 --- /dev/null +++ b/database/migrations/2026_05_27_193615_add_soft_deletes_to_suppliers_table.php @@ -0,0 +1,22 @@ +softDeletes(); // Agrega 'deleted_at' a proveedores + }); +} + +public function down(): void +{ + Schema::table('suppliers', function (Blueprint $table) { + $table->dropSoftDeletes(); + }); +} +};