getTasks()->runCheckErrors(); } catch (Exception $e) { // This is automatically running, but we still want a breadcrumb so // a permanently failing e-conomic API does not stay invisible. error_log('[cron-sync-economic-invoice-status] runCheckErrors failed: ' . $e->getMessage()); } try { $economic->getTasks()->runCheckDrafts(); } catch (Exception $e) { // Same as above - this is on the cron path, so failing silently // would mean a corrupted e-conomic draft state stays undiagnosed. error_log('[cron-sync-economic-invoice-status] runCheckDrafts failed: ' . $e->getMessage()); } $end = microtime(true); //$slack = new \classes\slack(); //$slack->send_message("The booking sync script has finished. It took " . round($end - $start, 2) . " seconds to run.");