input->is_cli_request()) show_404(); $tables = array( 'accounts','journals','journal_details','accounting_periods','fiscal_years', 'document_sequences','system_account_mappings','customers','invoices','payments', 'suppliers','purchase_orders','supplier_invoices','supplier_payments','items', 'warehouses','assets','cash_accounts','cash_transactions','k_employees', 'k_payroll_periods','k_payrolls','tax_codes','tax_transactions','business_dimensions', 'budgets','budget_lines','budget_revisions','saved_report_filters', 'report_export_jobs','report_snapshots','closing_checklists','exchange_rates', 'fx_revaluations','intercompany_transactions','user_companies' ); $missingTables = array(); $missingColumns = array(); $nullRows = array(); foreach ($tables as $table) { if (!$this->db->table_exists($table)) {$missingTables[]=$table;continue;} if (!$this->db->field_exists('company_id',$table)) {$missingColumns[]=$table;continue;} $count=(int)$this->db->where('company_id IS NULL',null,false)->count_all_results($table); if ($count) $nullRows[$table]=$count; } $result=array('missing_tables'=>$missingTables,'missing_company_id'=>$missingColumns,'null_company_rows'=>$nullRows,'status'=>!$missingTables&&!$missingColumns&&!$nullRows?'ok':'failed'); echo json_encode($result,JSON_PRETTY_PRINT).PHP_EOL; if($result['status']!=='ok')exit(1); } }