feat: implement BankAccount management with CRUD operations and selection for tenants

This commit is contained in:
2026-07-03 13:43:32 -03:00
parent b94efea4e0
commit b1e40b3430
13 changed files with 497 additions and 2 deletions

View File

@@ -0,0 +1,38 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('bank_accounts', function (Blueprint $table) {
$table->id();
$table->string('tenant_code');
$table->string('titular');
$table->string('entidad');
$table->string('alias');
$table->string('cvu');
$table->timestamps();
$table->foreign('tenant_code')
->references('codigo')
->on('tenants')
->cascadeOnUpdate()
->cascadeOnDelete();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('bank_accounts');
}
};

View File

@@ -0,0 +1,34 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('tenants', function (Blueprint $table) {
$table->unsignedBigInteger('selected_bank_account_id')->nullable()->after('footer_logo_id');
$table->foreign('selected_bank_account_id')
->references('id')
->on('bank_accounts')
->nullOnDelete();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('tenants', function (Blueprint $table) {
$table->dropForeign(['selected_bank_account_id']);
$table->dropColumn('selected_bank_account_id');
});
}
};

View File

@@ -72,7 +72,7 @@ class TenantSeeder extends Seeder
true
);
$this->tenantService->create([
$tenant = $this->tenantService->create([
'codigo' => 'sonder',
'nombre' => 'Sonder',
'dominio' => 'localhost',
@@ -85,5 +85,32 @@ class TenantSeeder extends Seeder
'header_logo' => $headerLogo,
'footer_logo' => $footerLogo,
]);
$bankAccount1 = \App\Domains\Tenant\Models\BankAccount::query()->create([
'tenant_code' => $tenant->codigo,
'titular' => 'Sonder S.A. (Principal)',
'entidad' => 'Banco de la Nación Argentina',
'alias' => 'sonder.indumentaria',
'cvu' => '0110065420006540987654',
]);
\App\Domains\Tenant\Models\BankAccount::query()->create([
'tenant_code' => $tenant->codigo,
'titular' => 'Sonder S.A. (Secundaria)',
'entidad' => 'Banco de Galicia y Buenos Aires',
'alias' => 'sonder.indumentaria.galicia',
'cvu' => '0070012345678901234567',
]);
\App\Domains\Tenant\Models\BankAccount::query()->create([
'tenant_code' => $tenant->codigo,
'titular' => 'Sonder S.A. (Mercado Pago)',
'entidad' => 'Mercado Pago',
'alias' => 'sonder.indumentaria.mp',
'cvu' => '0000003100012345678901',
]);
$tenant->selected_bank_account_id = $bankAccount1->id;
$tenant->save();
}
}