Update besar apk finance
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
class Migration_Fixed_asset_decimal_values extends CI_Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
if (!$this->db->table_exists('assets')) return;
|
||||
if ($this->db->table_exists('legacy_migration_adjustments')) {
|
||||
$this->db->query("INSERT IGNORE INTO legacy_migration_adjustments(entity_type,entity_id,field_name,old_value,new_value,reason,adjusted_at)
|
||||
SELECT 'asset',id,'qty',IF(qty IS NULL,'NULL',CAST(qty AS CHAR)),'1','Qty aset legacy kosong dinormalisasi menjadi satu unit',NOW()
|
||||
FROM assets WHERE qty IS NULL OR qty<=0");
|
||||
}
|
||||
// Aset lama tanpa kolom qty berasal dari satu baris per aset, sehingga satu
|
||||
// baris tersebut secara aman diperlakukan sebagai satu unit.
|
||||
$this->db->query('UPDATE assets SET qty=1 WHERE qty IS NULL OR qty<=0');
|
||||
$this->db->query('UPDATE assets SET harga_per_unit=COALESCE(nilai_perolehan,0) WHERE harga_per_unit IS NULL');
|
||||
$this->db->query('UPDATE assets SET nilai_perolehan=COALESCE(harga_per_unit*qty,0) WHERE nilai_perolehan IS NULL');
|
||||
$this->db->query('UPDATE assets SET nilai_residu=0 WHERE nilai_residu IS NULL');
|
||||
$this->db->query('UPDATE assets SET penyusutan_per_bulan=0 WHERE penyusutan_per_bulan IS NULL');
|
||||
$this->db->query('UPDATE assets SET akumulasi_penyusutan=0 WHERE akumulasi_penyusutan IS NULL');
|
||||
$this->db->query('UPDATE assets SET nilai_buku=GREATEST(COALESCE(nilai_perolehan,0)-COALESCE(akumulasi_penyusutan,0),0) WHERE nilai_buku IS NULL');
|
||||
$this->db->query("ALTER TABLE assets
|
||||
MODIFY qty DECIMAL(18,4) NOT NULL DEFAULT 1,
|
||||
MODIFY harga_per_unit DECIMAL(18,2) NOT NULL DEFAULT 0,
|
||||
MODIFY nilai_perolehan DECIMAL(18,2) NOT NULL DEFAULT 0,
|
||||
MODIFY nilai_residu DECIMAL(18,2) NOT NULL DEFAULT 0,
|
||||
MODIFY penyusutan_per_bulan DECIMAL(18,2) NOT NULL DEFAULT 0,
|
||||
MODIFY akumulasi_penyusutan DECIMAL(18,2) NOT NULL DEFAULT 0,
|
||||
MODIFY nilai_buku DECIMAL(18,2) NOT NULL DEFAULT 0");
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
// Presisi desimal tidak diturunkan kembali agar nilai accounting tidak rusak.
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user