fix enrollment logic, add financial aid, fix class distribution
Tests / PHPUnit (push) Failing after 1m6s
Tests / PHPUnit (push) Failing after 1m6s
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
<?php
|
||||
|
||||
namespace App\Database\Migrations;
|
||||
|
||||
use CodeIgniter\Database\Migration;
|
||||
|
||||
class UpdateTuitionFeeDefaults extends Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
if (!$this->db->tableExists('configuration')) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->forceConfig('first_student_fee', '380.00');
|
||||
$this->forceConfig('second_student_fee', '280.00');
|
||||
$this->forceConfig('new_tuition_full_amount', '380.00');
|
||||
$this->forceConfig('new_tuition_second_student_discount', '100.00');
|
||||
$this->aliasAndForceConfig('Youth_fee', 'youth_fee', '380.00');
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
if (!$this->db->tableExists('configuration')) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->rollbackConfig('first_student_fee', '370.00');
|
||||
$this->rollbackConfig('second_student_fee', '200.00');
|
||||
$this->rollbackConfig('youth_fee', '200.00');
|
||||
$this->rollbackConfig('new_tuition_full_amount', '370.00');
|
||||
$this->rollbackConfig('new_tuition_second_student_discount', '50.00');
|
||||
}
|
||||
|
||||
protected function aliasAndForceConfig(string $legacyKey, string $canonicalKey, string $value): void
|
||||
{
|
||||
$legacy = $this->db->table('configuration')
|
||||
->select('id, config_value')
|
||||
->where('config_key', $legacyKey)
|
||||
->orderBy('id', 'ASC')
|
||||
->get()
|
||||
->getRowArray();
|
||||
|
||||
if ($legacy && strcasecmp($legacyKey, $canonicalKey) !== 0) {
|
||||
$this->db->table('configuration')
|
||||
->where('id', (int) $legacy['id'])
|
||||
->update(['config_key' => $canonicalKey, 'config_value' => $value]);
|
||||
}
|
||||
|
||||
$this->forceConfig($canonicalKey, $value);
|
||||
}
|
||||
|
||||
protected function forceConfig(string $key, string $value): void
|
||||
{
|
||||
$row = $this->db->table('configuration')
|
||||
->select('id')
|
||||
->where('config_key', $key)
|
||||
->orderBy('id', 'ASC')
|
||||
->get()
|
||||
->getRowArray();
|
||||
|
||||
if (!$row) {
|
||||
$this->db->table('configuration')->insert([
|
||||
'config_key' => $key,
|
||||
'config_value' => $value,
|
||||
]);
|
||||
return;
|
||||
}
|
||||
|
||||
$this->db->table('configuration')
|
||||
->where('config_key', $key)
|
||||
->update(['config_value' => $value]);
|
||||
}
|
||||
|
||||
protected function upsertConfig(string $key, string $value, array $legacyValues): void
|
||||
{
|
||||
$row = $this->db->table('configuration')
|
||||
->select('id, config_value')
|
||||
->where('config_key', $key)
|
||||
->orderBy('id', 'ASC')
|
||||
->get()
|
||||
->getRowArray();
|
||||
|
||||
if (!$row) {
|
||||
$this->db->table('configuration')->insert([
|
||||
'config_key' => $key,
|
||||
'config_value' => $value,
|
||||
]);
|
||||
return;
|
||||
}
|
||||
|
||||
$current = trim((string) ($row['config_value'] ?? ''));
|
||||
if (in_array($current, $legacyValues, true)) {
|
||||
$this->db->table('configuration')
|
||||
->where('config_key', $key)
|
||||
->update(['config_value' => $value]);
|
||||
}
|
||||
}
|
||||
|
||||
protected function rollbackConfig(string $key, string $value): void
|
||||
{
|
||||
$this->db->table('configuration')
|
||||
->where('config_key', $key)
|
||||
->where('config_value', '380.00')
|
||||
->update(['config_value' => $value]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user