create service count floor level and retributions
This commit is contained in:
106
database/seeders/MasterFormulaSeeder.php
Normal file
106
database/seeders/MasterFormulaSeeder.php
Normal file
@@ -0,0 +1,106 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||
use Illuminate\Database\Seeder;
|
||||
use App\Models\MasterFormula;
|
||||
use App\Models\MasterParameter;
|
||||
use App\Models\FormulaParameter;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Carbon\Carbon;
|
||||
|
||||
class MasterFormulaSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
$now = Carbon::now();
|
||||
|
||||
// 1. Master Formulas
|
||||
$formulas = [
|
||||
[
|
||||
'formula_code' => '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']);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user