Exemplo n.º 1
0
 /**
  * checks if all providers received publish 
  * if not sends again to the ones who didnt.
  * 
  * @param array $request 
  * @return void
  */
 public function checkPublish($request)
 {
     if (!isset($request['forceAll']) || !$request['forceAll']) {
         $problem_providers = Application_Model_General::getProvidersRequestWithoutPublishResponse($request['request_id'], $request['from_provider'], $request['to_provider']);
     } else {
         // if force all - send to all providers except source & destination
         $problem_providers = array_diff(Application_Model_General::getProviderArray(), array($request['from_provider'], $request['to_provider']));
     }
     if ($problem_providers) {
         //problem! - send providers again
         $ret = array();
         foreach ($problem_providers as $provider) {
             $request['provider'] = $provider;
             Application_Model_General::forkProcess("/cron/publish", $request);
             $ret[] = $request;
         }
         return $ret;
     } else {
         // all providers return response - update publish_response
         $req_tbl = new Application_Model_DbTable_Requests(Np_Db::master());
         $req_tbl->update(array('last_transaction' => 'Publish_response', 'status' => 0), 'id=' . $request['id']);
         // @TODO: send to internal!
     }
     return TRUE;
 }
Exemplo n.º 2
0
 public function editAction()
 {
     $model = new Application_Model_Monitor();
     $editForm = new Application_Form_Edit();
     if ($this->getRequest()->isPost()) {
         $post_data = $this->getRequest()->getPost();
         unset($post_data['submit']);
         $model->saveRow($post_data);
         $this->_redirect(Application_Model_General::getBaseUrl() . '/monitor?phone=' . (string) $post_data['phone_number']);
         exit('redirect...');
         //redirect to logger
     }
     $table = (string) $this->getRequest()->getParam('table');
     $id = (int) $this->getRequest()->getParam('id');
     $data = $model->getTableRow($table, $id);
     $last_transaction = strtolower($data['last_transaction']);
     if ($data) {
         $model->createForm($editForm, $table, $data);
         $this->view->editForm = $editForm;
         if ($data['status']) {
             if (!empty($data['transfer_time'] && ($data['to_provider'] == Application_Model_General::getSettings('InternalProvider') || $data['from_provider'] == Application_Model_General::getSettings('InternalProvider'))) && ($last_transaction == 'kd_update' || $last_transaction == 'kd_update_response' || $last_transaction == 'request' || $last_transaction == 'request_response' || $last_transaction == 'update' || $last_transaction == 'update_response' || $last_transaction == 'execute_response')) {
                 $executeData = array('id' => $data['id'], 'request_id' => $data['request_id'], 'from_provider' => $data['from_provider'], 'to_provider' => $data['to_provider'], 'phone_number' => $data['phone_number']);
                 $executeForm = new Application_Form_Execute();
                 $executeForm->setDefaults($executeData);
                 if ($data['from_provider'] == Application_Model_General::getSettings('InternalProvider')) {
                     $executeForm->getElement('submit')->setLabel('Receive execute');
                 }
                 $this->view->executeForm = $executeForm;
             }
             if ((!empty($data['transfer_time']) || $last_transaction == 'return_response') && $data['to_provider'] == Application_Model_General::getSettings('InternalProvider') && ($last_transaction == 'publish' || $last_transaction == 'execute_response' || $last_transaction == 'return_response')) {
                 $publishForm = new Application_Form_Publish();
                 $publishForm->setDefaults($data);
                 $this->view->publishForm = $publishForm;
             }
         } else {
             $this->view->executeForm = '';
         }
     }
     if (strpos($last_transaction, 'publish') !== FALSE) {
         $this->view->publishNotResponse = Application_Model_General::getProvidersRequestWithoutPublishResponse($data['request_id'], $data['from_provider'], $data['to_provider']);
     }
     $this->view->headLink()->appendStylesheet(Application_Model_General::getBaseUrl() . '/css/style.css');
 }