|
|
@@ -10,6 +10,14 @@ class FinancialPlanAccountSeeder extends Seeder
|
|
|
public function run(): void
|
|
|
{
|
|
|
// Plano de contas padrão da matriz (franqueador): unit_id null.
|
|
|
+ // Raízes (contas pai) por tipo — parent_id null. As filhas herdam o chart_type.
|
|
|
+ $roots = [
|
|
|
+ ['code' => '1', 'description' => 'Ativo', 'chart_type' => 'Ativo'],
|
|
|
+ ['code' => '2', 'description' => 'Passivo', 'chart_type' => 'Passivo'],
|
|
|
+ ['code' => '3', 'description' => 'Receitas', 'chart_type' => 'Receitas'],
|
|
|
+ ['code' => '4', 'description' => 'Despesas', 'chart_type' => 'Despesas'],
|
|
|
+ ];
|
|
|
+
|
|
|
$accounts = [
|
|
|
['code' => '1.1', 'description' => 'Ativo Circulante', 'chart_type' => 'Ativo'],
|
|
|
['code' => '1.1.1', 'description' => 'Caixas e Equivalentes', 'chart_type' => 'Ativo'],
|
|
|
@@ -43,15 +51,39 @@ public function run(): void
|
|
|
['code' => '4.2.2', 'description' => 'Taxas Bancárias', 'chart_type' => 'Despesas'],
|
|
|
];
|
|
|
|
|
|
+ // code => id, para resolver o parent_id ao criar as filhas.
|
|
|
+ $idByCode = [];
|
|
|
+
|
|
|
+ // Raízes primeiro (parent_id null).
|
|
|
+ foreach ($roots as $root) {
|
|
|
+ $model = FinancialPlanAccount::updateOrCreate(
|
|
|
+ ['code' => $root['code'], 'unit_id' => null],
|
|
|
+ [
|
|
|
+ 'parent_id' => null,
|
|
|
+ 'order' => $root['code'],
|
|
|
+ 'description' => $root['description'],
|
|
|
+ 'chart_type' => $root['chart_type'],
|
|
|
+ ],
|
|
|
+ );
|
|
|
+ $idByCode[$root['code']] = $model->id;
|
|
|
+ }
|
|
|
+
|
|
|
+ // Demais contas — pai = código sem o último segmento (ex.: 1.1.1 -> 1.1).
|
|
|
foreach ($accounts as $account) {
|
|
|
- FinancialPlanAccount::firstOrCreate(
|
|
|
+ $segments = explode('.', $account['code']);
|
|
|
+ array_pop($segments);
|
|
|
+ $parentCode = implode('.', $segments);
|
|
|
+
|
|
|
+ $model = FinancialPlanAccount::updateOrCreate(
|
|
|
['code' => $account['code'], 'unit_id' => null],
|
|
|
[
|
|
|
- 'order' => $account['code'],
|
|
|
+ 'parent_id' => $idByCode[$parentCode] ?? null,
|
|
|
+ 'order' => $account['code'],
|
|
|
'description' => $account['description'],
|
|
|
- 'chart_type' => $account['chart_type'],
|
|
|
+ 'chart_type' => $account['chart_type'],
|
|
|
],
|
|
|
);
|
|
|
+ $idByCode[$account['code']] = $model->id;
|
|
|
}
|
|
|
}
|
|
|
}
|