Update besar apk finance
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
class Migration_Backfill_purchase_payable_company extends CI_Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
if (!$this->db->table_exists('companies')) return;
|
||||
$company = $this->db->order_by('id')->get('companies')->row();
|
||||
if (!$company) return;
|
||||
$fallback = (int)$company->id;
|
||||
|
||||
if ($this->db->table_exists('purchase_orders') && $this->db->field_exists('company_id', 'purchase_orders')) {
|
||||
$this->db->query(
|
||||
'UPDATE purchase_orders po LEFT JOIN suppliers s ON s.id=po.supplier_id '.
|
||||
'SET po.company_id=COALESCE(s.company_id,?) WHERE po.company_id IS NULL',
|
||||
array($fallback)
|
||||
);
|
||||
}
|
||||
|
||||
if ($this->db->table_exists('supplier_invoices') && $this->db->field_exists('company_id', 'supplier_invoices')) {
|
||||
$this->db->query(
|
||||
'UPDATE supplier_invoices si '.
|
||||
'LEFT JOIN supplier_invoice_lines sil ON sil.supplier_invoice_id=si.id '.
|
||||
'LEFT JOIN purchase_order_lines pol ON pol.id=sil.po_line_id '.
|
||||
'LEFT JOIN purchase_orders po ON po.id=pol.purchase_order_id '.
|
||||
'LEFT JOIN suppliers s ON s.id=si.supplier_id '.
|
||||
'SET si.company_id=COALESCE(po.company_id,s.company_id,?) '.
|
||||
'WHERE si.company_id IS NULL',
|
||||
array($fallback)
|
||||
);
|
||||
}
|
||||
|
||||
if ($this->db->table_exists('supplier_payments') && $this->db->field_exists('company_id', 'supplier_payments')) {
|
||||
$this->db->query(
|
||||
'UPDATE supplier_payments sp LEFT JOIN suppliers s ON s.id=sp.supplier_id '.
|
||||
'SET sp.company_id=COALESCE(s.company_id,?) WHERE sp.company_id IS NULL',
|
||||
array($fallback)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
// Backfill tenant tidak dibalik agar transaksi tidak kembali tanpa perusahaan.
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user