8 lines
1.5 KiB
PHP
8 lines
1.5 KiB
PHP
<?php
|
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
|
class Migration_Complete_department_position_master extends CI_Migration
|
|
{
|
|
public function up(){foreach(array('k_departments','k_positions')as$t){if(!$this->db->field_exists('code',$t))$this->db->query("ALTER TABLE `$t` ADD code VARCHAR(30) NULL AFTER id");if(!$this->db->field_exists('description',$t))$this->db->query("ALTER TABLE `$t` ADD description VARCHAR(255) NULL");if(!$this->db->field_exists('is_active',$t))$this->db->query("ALTER TABLE `$t` ADD is_active TINYINT(1) NOT NULL DEFAULT 1");}if(!$this->db->field_exists('department_id','k_positions'))$this->db->query('ALTER TABLE k_positions ADD department_id INT NULL AFTER position_name');if(!$this->db->field_exists('department_id','purchase_requests'))$this->db->query('ALTER TABLE purchase_requests ADD department_id INT NULL AFTER department');$this->db->query("UPDATE k_departments SET code=CONCAT('DEP-',LPAD(id,3,'0')) WHERE code IS NULL OR code=''");$this->db->query("UPDATE k_positions SET code=CONCAT('POS-',LPAD(id,3,'0')) WHERE code IS NULL OR code=''");$this->db->query("UPDATE purchase_requests pr JOIN k_departments d ON CONVERT(LOWER(TRIM(d.department_name)) USING utf8mb4) COLLATE utf8mb4_general_ci=CONVERT(LOWER(TRIM(pr.department)) USING utf8mb4) COLLATE utf8mb4_general_ci SET pr.department_id=d.id WHERE pr.department_id IS NULL");}
|
|
public function down(){throw new RuntimeException('Gunakan backup untuk rollback master organisasi.');}
|
|
}
|