'RETRIBUSI_DASAR', 'formula_name' => 'Formula Retribusi Dasar', 'formula_expression' => '{koefisien_dasar} * {luas_bangunan} * ({indeks_lokalitas} * {tarif_dasar} * ({fungsi_bangunan} * ({ip_permanen} + {ip_kompleksitas} + ({multiplier_ketinggian} * {ip_ketinggian}))) * {koefisien_dasar})', 'formula_category' => 'basic', 'description' => 'Formula dasar untuk perhitungan retribusi PBG tanpa prasarana', 'usage_notes' => 'Menggunakan rumus: 1*D5*(N5*tarif_dasar*H5*1) dimana H5=E5*(F5+G5+(0.5*H3))' ], [ 'formula_code' => 'RETRIBUSI_DENGAN_PRASARANA', 'formula_name' => 'Formula Retribusi dengan Prasarana', 'formula_expression' => '({koefisien_dasar} * {luas_bangunan} * ({indeks_lokalitas} * {tarif_dasar} * ({fungsi_bangunan} * ({ip_permanen} + {ip_kompleksitas} + ({multiplier_ketinggian} * {ip_ketinggian}))) * {koefisien_dasar})) + ({asumsi_prasarana} * ({koefisien_dasar} * {luas_bangunan} * ({indeks_lokalitas} * {tarif_dasar} * ({fungsi_bangunan} * ({ip_permanen} + {ip_kompleksitas} + ({multiplier_ketinggian} * {ip_ketinggian}))) * {koefisien_dasar})))', 'formula_category' => 'complete', 'description' => 'Formula lengkap retribusi PBG termasuk prasarana', 'usage_notes' => 'Formula utama: (dasar) + (prasarana * dasar). Sesuai rumus Excel yang diberikan' ], [ 'formula_code' => 'RETRIBUSI_BEBAS', 'formula_name' => 'Formula Retribusi Bebas', 'formula_expression' => '0', 'formula_category' => 'free', 'description' => 'Formula untuk bangunan yang bebas retribusi', 'usage_notes' => 'Digunakan untuk bangunan keagamaan dan MBR' ], [ 'formula_code' => 'RETRIBUSI_PER_LANTAI', 'formula_name' => 'Formula Perhitungan per Lantai (H5)', 'formula_expression' => '{fungsi_bangunan} * ({ip_permanen} + {ip_kompleksitas} + ({multiplier_ketinggian} * {ip_ketinggian}))', 'formula_category' => 'component', 'description' => 'Formula untuk menghitung nilai per lantai (H5 dalam Excel)', 'usage_notes' => 'Rumus: E5*(F5+G5+(0.5*H3)) - komponen perhitungan per lantai' ], [ 'formula_code' => 'RETRIBUSI_HUNIAN_SEDERHANA', 'formula_name' => 'Formula Retribusi Hunian Sederhana', 'formula_expression' => '({koefisien_dasar} * {luas_bangunan} * ({indeks_lokalitas} * {tarif_dasar} * ({fungsi_hunian_sederhana} * ({ip_permanen_hunian_sederhana} + {ip_kompleksitas_hunian_sederhana} + ({multiplier_ketinggian} * {ip_ketinggian}))) * {koefisien_dasar})) + ({asumsi_prasarana} * ({koefisien_dasar} * {luas_bangunan} * ({indeks_lokalitas} * {tarif_dasar} * ({fungsi_hunian_sederhana} * ({ip_permanen_hunian_sederhana} + {ip_kompleksitas_hunian_sederhana} + ({multiplier_ketinggian} * {ip_ketinggian}))) * {koefisien_dasar})))', 'formula_category' => 'residential', 'description' => 'Formula khusus untuk hunian sederhana dengan IP kompleksitas 0.3', 'usage_notes' => 'Menggunakan parameter khusus hunian sederhana' ], [ 'formula_code' => 'RETRIBUSI_HUNIAN_TIDAK_SEDERHANA', 'formula_name' => 'Formula Retribusi Hunian Tidak Sederhana', 'formula_expression' => '({koefisien_dasar} * {luas_bangunan} * ({indeks_lokalitas} * {tarif_dasar} * ({fungsi_hunian_tidak_sederhana} * ({ip_permanen_hunian_tidak_sederhana} + {ip_kompleksitas_hunian_tidak_sederhana} + ({multiplier_ketinggian} * {ip_ketinggian}))) * {koefisien_dasar})) + ({asumsi_prasarana} * ({koefisien_dasar} * {luas_bangunan} * ({indeks_lokalitas} * {tarif_dasar} * ({fungsi_hunian_tidak_sederhana} * ({ip_permanen_hunian_tidak_sederhana} + {ip_kompleksitas_hunian_tidak_sederhana} + ({multiplier_ketinggian} * {ip_ketinggian}))) * {koefisien_dasar})))', 'formula_category' => 'residential', 'description' => 'Formula khusus untuk hunian tidak sederhana', 'usage_notes' => 'Menggunakan parameter khusus hunian tidak sederhana' ], [ 'formula_code' => 'RETRIBUSI_SOSIAL_BUDAYA', 'formula_name' => 'Formula Retribusi Sosial Budaya', 'formula_expression' => '({koefisien_dasar} * {luas_bangunan} * ({indeks_lokalitas} * {tarif_dasar} * ({fungsi_sosial_budaya} * ({ip_permanen_sosial_budaya} + {ip_kompleksitas_sosial_budaya} + ({multiplier_ketinggian} * {ip_ketinggian}))) * {koefisien_dasar})) + ({asumsi_prasarana} * ({koefisien_dasar} * {luas_bangunan} * ({indeks_lokalitas} * {tarif_dasar} * ({fungsi_sosial_budaya} * ({ip_permanen_sosial_budaya} + {ip_kompleksitas_sosial_budaya} + ({multiplier_ketinggian} * {ip_ketinggian}))) * {koefisien_dasar})))', 'formula_category' => 'social', 'description' => 'Formula khusus untuk bangunan sosial budaya', 'usage_notes' => 'Menggunakan parameter fungsi sosial budaya' ], [ 'formula_code' => 'RETRIBUSI_USAHA', 'formula_name' => 'Formula Retribusi Usaha', 'formula_expression' => '({koefisien_dasar} * {luas_bangunan} * ({indeks_lokalitas} * {tarif_dasar} * ({fungsi_usaha_besar} * ({ip_permanen_usaha_besar} + {ip_kompleksitas_usaha_besar} + ({multiplier_ketinggian} * {ip_ketinggian}))) * {koefisien_dasar})) + ({asumsi_prasarana} * ({koefisien_dasar} * {luas_bangunan} * ({indeks_lokalitas} * {tarif_dasar} * ({fungsi_usaha_besar} * ({ip_permanen_usaha_besar} + {ip_kompleksitas_usaha_besar} + ({multiplier_ketinggian} * {ip_ketinggian}))) * {koefisien_dasar})))', 'formula_category' => 'commercial', 'description' => 'Formula khusus untuk bangunan usaha', 'usage_notes' => 'Menggunakan parameter fungsi usaha besar' ] ]; foreach ($formulas as $formula) { DB::table('master_formulas')->updateOrInsert( ['formula_code' => $formula['formula_code']], array_merge($formula, [ 'created_at' => $now, 'updated_at' => $now ]) ); } $this->command->info('Master Formulas seeded successfully!'); $this->command->info('=== FORMULA SUMMARY ==='); foreach ($formulas as $formula) { $this->command->info($formula['formula_code'] . ': ' . $formula['formula_name']); } } }