getList($class); break; case 'preview': $answer['output'] = $runs->preview($class, $through); break; case 'detail': $answer['output'] = $runs->getDetail($run_id); break; case 'run': $created = dbTransaction($pdo2, fn($pdo) => (new AssetRunManager($pdo, $company_id))->run($class, $through, $user_id)); (new UsageGuard($pdo1, $company_id, $packages))->increment(); $answer['output'] = $created; $answer['message'] = count($created) . ' run(s) created. Accounting posts them from Batch GL Entries.'; break; case 'void': dbTransaction($pdo2, function ($pdo) use ($company_id, $run_id, $pdo1) { $gl = new GlManager($pdo, $company_id, new PostingWindowGuard($pdo1, $company_id)); (new AssetRunManager($pdo, $company_id))->void($run_id, $gl); }); $answer['message'] = 'Run voided.'; break; default: throw new Exception('Invalid action.'); } $answer['success'] = 1; } catch (PDOException $e) { $answer['message'] = 'Database error, please try again.'; http_response_code(500); } catch (Exception $e) { $answer['message'] = $e->getMessage(); http_response_code(400); } exit(json_encode($answer));