public function getDispositionForm() { $faxprof = Input::instance()->post('faxprofile'); $faxdisp = Doctrine::getTable('FaxDisposition')->find($faxprof['fxp_fxd_id']); if ($faxdisp) { $packageobj = Doctrine::getTable('package')->find($faxdisp['fxd_package_id']); if ($packageobj) { try { if (!($package = Package_Catalog::getInstalledPackage($packageobj->name))) { echo 'Package not ' . $packageobj->name . ' found.'; exit; } $formfile = $package['directory'] . '/views/' . $packageobj->name . '/' . $faxdisp['fxd_name'] . '.php'; kohana::Log('debug', 'Looking for view ' . $formfile); if (file_exists($formfile)) { $featureFormView = new View($packageobj->name . '/' . $faxdisp['fxd_name']); kohana::Log('debug', 'View file found.'); if (isset($faxprof['fxp_id']) && !empty($faxprof['fxp_id']) && $faxprof['fxp_id'] != '') { $faxprofobj = Doctrine::getTable('FaxProfile')->find($faxprof['fxp_id']); } else { $faxprofobj = new FaxProfile(); } $featureFormView->set_global('faxprofile', $faxprofobj); echo $featureFormView->render(TRUE); } else { kohana::Log('debug', 'View file not found.'); } } catch (Package_Catalog_Exception $e) { echo 'Package not ' . $packageobj->name . ' found.'; } } } exit; }
public static function datetimediff($d1, $d2, $returnformat = 'colon') { kohana::Log('debug', 'd1: ' . print_r($d1, true) . ' d2: ' . print_r($d2, true)); if ($d1 === '' || $d2 === '') { return false; } try { $date1 = new DateTime($d1); $date2 = new DateTime($d2); } catch (Exception $e) { return false; } $interval = $date1->diff($date2); $interval_str = ''; switch ($returnformat) { case 'colon': if ($interval->invert) { $interval_str .= '-'; } if ($v = $interval->y >= 1) { $interval_str .= $interval->y . 'y'; } if ($v = $interval->m >= 1) { $interval_str .= $interval->m . 'm'; } if ($v = $interval->d >= 1) { $interval_str .= $interval->d . 'd'; } $interval_str .= ' '; if ($v = $interval->h >= 1) { $interval_str .= str_pad($interval->h, 2, '0', STR_PAD_LEFT) . ':'; } else { $interval_str .= '00:'; } if ($v = $interval->i >= 1) { $interval_str .= str_pad($interval->i, 2, '0', STR_PAD_LEFT) . ':'; } else { $interval_str .= '00:'; } if ($v = $interval->s >= 1) { $interval_str .= str_pad($interval->s, 2, '0', STR_PAD_LEFT) . ':'; } else { $interval_str .= '00:'; } $interval_str = substr($interval_str, 0, -1); break; case 'text': if ($v = $interval->y >= 1) { $interval_str .= self::pluralize($interval->y, ' year') . ', '; } if ($v = $interval->m >= 1) { $interval_str .= self::pluralize($interval->m, ' month') . ', '; } if ($v = $interval->d >= 1) { $interval_str .= self::pluralize($interval->d, ' day') . ', '; } if ($v = $interval->h >= 1) { $interval_str .= self::pluralize($interval->h, ' hour') . ', '; } if ($v = $interval->i >= 1) { $interval_str .= self::pluralize($interval->i, ' minute') . ', '; } if ($v = $interval->s >= 1) { $interval_str .= self::pluralize($interval->s, ' second') . ', '; } $interval_str = substr($interval_str, 0, -1); $interval_str .= ' '; if ($interval->invert) { $interval_str .= _('from now'); } else { $interval_str .= _('ago'); } break; default: $interval_str = $interval->format($returnformat); break; } return $interval_str; }
public function syncRunningConfig($step) { while (ob_get_level()) { ob_end_clean(); } $sessionobj = Session::instance(); if ($step == 'setup') { try { //build domain filter $locationobjlist = Doctrine_Query::create()->select('*')->from('Location')->execute(); foreach ($locationobjlist as $location) { $locationidlist[] = $location->location_id; } $sessionobj->set('locationlist', $locationidlist); echo json_encode(array('result' => 'OK', 'message' => 'Success', 'nextstep' => 'buildrunningqueuelist')); } catch (Exception $e) { kohana::Log('error', $e->getMessage()); echo json_encode(array('result' => 'ERROR', 'message' => $e->getMessage, 'nextstep' => '')); exit; } } elseif ($step == 'buildrunningqueuelist') { try { $sessionobj->set('runningqueuelist', $this->getRunningQueueList()); echo json_encode(array('result' => 'OK', 'message' => 'Success', 'nextstep' => 'builddbqueuelist')); } catch (Exception $e) { kohana::Log('error', $e->getMessage()); echo json_encode(array('result' => 'ERROR', 'message' => $e->getMessage, 'nextstep' => 'buildrunningagentlist')); exit; } } elseif ($step == 'builddbqueuelist') { try { $queuenamelist = array(); $dbqueueobjlist = Doctrine_Query::create()->select('*')->from('callcenter_queue')->execute(); foreach ($dbqueueobjlist as $dbqueueobj) { $queuenamelist[$dbqueueobj->name . '@' . $dbqueueobj->queueLocation->domain] = $dbqueueobj; } $sessionobj->set('queuenamelist', $queuenamelist); echo json_encode(array('result' => 'OK', 'message' => 'Success', 'nextstep' => 'reconcilequeues')); } catch (Exception $e) { $sessionobj->delete('runningqueuelist'); kohana::Log('error', $e->getMessage()); echo json_encode(array('result' => 'ERROR', 'message' => $e->getMessage, 'nextstep' => 'buildrunningagentlist')); exit; } } elseif ($step == 'reconcilequeues') { $queuestatus = ''; $queuenamelist = $sessionobj->get('queuenamelist', array()); $runningqueuelist = $sessionobj->get('runningqueuelist', array()); foreach ($runningqueuelist as $runningqueue) { if (!isset($queuenamelist[$runningqueue['name']])) { try { $this->removeRunningQueue($runningqueue['name']); } catch (callcenterException $e) { $queuestatus .= $e->getMessage() . "\n"; kohana::Log('error', $e->getMessage()); } } } foreach ($queuenamelist as $queuename => $queueobj) { $this->updateRunningQueue($queuename); } if ($queuestatus != '') { $sessionobj->delete('runningqueuelist'); $sessionobj->delete('queuenamelist'); echo json_encode(array('result' => 'ERROR', 'message' => "Error Syncronizing Queues:\n" . $queuestatus, 'nextstep' => 'buildrunningagentlist')); exit; } $sessionobj->delete('runningqueuelist'); $sessionobj->delete('queuenamelist'); echo json_encode(array('result' => 'OK', 'message' => 'Success', 'nextstep' => 'buildrunningagentlist')); } elseif ($step == 'buildrunningagentlist') { try { $sessionobj->set('runningagentlist', $this->getRunningAgentList()); echo json_encode(array('result' => 'OK', 'message' => 'Success', 'nextstep' => 'builddbagentlist')); } catch (Exception $e) { kohana::Log('error', $e->getMessage()); echo json_encode(array('result' => 'ERROR', 'message' => $e->getMessage, 'nextstep' => '')); exit; } } elseif ($step == 'builddbagentlist') { try { $agentnamelist = array(); $dbagentobjlist = Doctrine_Query::create()->select('*')->from('callcenter_agent')->execute(); foreach ($dbagentobjlist as $dbagentobj) { $agentnamelist[$dbagentobj->cca_loginid . '@' . $dbagentobj->agentLocation->domain] = $dbagentobj; } $sessionobj->set('agentnamelist', $agentnamelist); echo json_encode(array('result' => 'OK', 'message' => 'Success', 'nextstep' => 'reconcileagents')); } catch (Exception $e) { $sessionobj->delete('runningagentlist'); kohana::Log('error', $e->getMessage()); echo json_encode(array('result' => 'ERROR', 'message' => $e->getMessage, 'nextstep' => '')); exit; } } elseif ($step == 'reconcileagents') { try { $agentstatus = ''; $agentnamelist = $sessionobj->get('agentnamelist', array()); $runningagentlist = $sessionobj->get('runningagentlist', array()); foreach ($runningagentlist as $runningagent) { if (!isset($agentnamelist[$runningagent['name']])) { try { $this->removeRunningAgent($runningagent['name']); } catch (callcenterException $e) { $agentstatus .= $e->getMessage() . "\n"; kohana::Log('error', $e->getMessage()); } } } foreach ($agentnamelist as $agentname => $agentobj) { $this->updateRunningAgent($agentobj); } if ($agentstatus != '') { echo json_encode(array('result' => 'ERROR', 'message' => "Error Syncronizing Agents:\n" . $agentstatus, 'nextstep' => 'syncronizetiers')); exit; } echo json_encode(array('result' => 'OK', 'message' => 'Success', 'nextstep' => 'syncronizetiers')); } catch (Exception $e) { $sessionobj->delete('runningagentlist'); $sessionobj->delete('agentnamelist'); kohana::Log('error', $e->getMessage()); echo json_encode(array('result' => 'ERROR', 'message' => $e->getMessage, 'nextstep' => 'syncronizetiers')); exit; } } elseif ($step == 'syncronizetiers') { try { $dbtierobjlist = Doctrine_Query::create()->select('*')->from('callcenter_tier')->execute(); foreach ($dbtierobjlist as $tierobj) { $this->updateRunningTier($tierobj); } $sessionobj->delete('runningagentlist'); $sessionobj->delete('agentnamelist'); echo json_encode(array('result' => 'OK', 'message' => 'Success', 'nextstep' => '')); } catch (Exception $e) { $sessionobj->delete('runningagentlist'); $sessionobj->delete('agentnamelist'); kohana::Log('error', $e->getMessage()); echo json_encode(array('result' => 'ERROR', 'message' => $e->getMessage, 'nextstep' => '')); exit; } } else { $sessionobj->delete('runningagentlist'); $sessionobj->delete('agentnamelist'); echo json_encode(array('result' => 'ERROR', 'message' => $e->getMessage)); kohana::Log('error', 'Invalid step passed to syncRunningConfig.'); exit; } return true; }