コード例 #1
0
ファイル: Check.php プロジェクト: carriercomm/NPG
 /**
  * overridden function from parent Np_Method
  * checks if db row exists
  * 
  * @return bool 
  */
 protected function ValidateDB()
 {
     $tbl = new Application_Model_DbTable_Requests(Np_Db::slave());
     $select = $tbl->select()->where('request_id =?', $this->getHeaderField("REQUEST_ID"));
     $result = $select->query()->fetchObject();
     if ($result) {
         return false;
         //if there is already request with this request_id.
     }
     return true;
 }
コード例 #2
0
ファイル: KDUpdateResponse.php プロジェクト: carriercomm/NPG
 /**
  * overridden function from parent Np_Method
  * checks if db object exists and last transaction is request_response,
  * update_response or cancel_response
  * 
  * @return bool 
  */
 protected function RequestValidateDB($request)
 {
     if (is_object($request) && property_exists($request, "status") && property_exists($request, "last_transaction") && $request->last_transaction == "KD_update") {
         $db = Np_Db::slave();
         $select = $db->select()->from("Transactions")->where("request_id = ?", $this->getHeaderField("REQUEST_ID"))->where('message_type IN (?)', array("Request_response", "Update_response", "Cancel_response"))->where('reject_reason_code IS NULL')->order('id DESC');
         $result = $select->query()->fetchObject();
         if ($result === FALSE) {
             return FALSE;
         }
         if ($result->last_transaction != "Cancel_response" && 0 === $request->status) {
             return FALSE;
         } else {
             return TRUE;
         }
     }
     return FALSE;
 }
コード例 #3
0
ファイル: Cron.php プロジェクト: carriercomm/NPG
 public function checkifgoodpublish($reqId)
 {
     $tbl = new Application_Model_DbTable_Transactions(Np_Db::slave());
     $select = $tbl->select();
     $select->where('request_id=?', $reqId)->where('message_type = "Publish_response" ')->where("reject_reason_code is NULL OR reject_reason_code = '' ");
     $result = $select->query();
     $rows = $result->fetchAll();
     foreach ($rows as $row) {
         $publish_update_result = Application_Model_Cron::updateGoodPublish($row['request_id'], substr($row['trx_no'], 0, 2));
     }
     return;
 }
コード例 #4
0
ファイル: Monitor.php プロジェクト: carriercomm/NPG
 public function getTableRow($table, $id)
 {
     $table_class = 'Application_Model_DbTable_' . ucfirst($table);
     if (class_exists($table_class)) {
         $table_object = new $table_class(Np_Db::slave());
         $select = $table_object->select();
         $select->where('id IN (?)', $id)->limit(1);
         $result = $select->query()->fetch();
         if ($result) {
             return $result;
         }
     }
     return false;
 }
コード例 #5
0
ファイル: Method.php プロジェクト: carriercomm/NPG
 /**
  * creates object from requests table row by REQUEST_ID if response returns
  * requestValidateDB validation else FALSE
  * 
  * @return bool 
  */
 protected function ValidateDB()
 {
     $tbl = new Application_Model_DbTable_Requests(Np_Db::slave());
     $select = $tbl->select()->where('request_id =?', $this->getHeaderField("REQUEST_ID"))->order('id DESC');
     $result = $select->query()->fetchObject();
     if ($result !== FALSE) {
         // set the variables used in timers
         $msg_type = strtoupper($this->getHeaderField('MSG_TYPE'));
         if ($msg_type == 'UPDATE_RESPONSE' || $msg_type == "CANCEL_RESPONSE" || $msg_type == 'UPDATE') {
             if ($msg_type != 'UPDATE') {
                 $select = Np_Db::slave()->select()->from('Transactions')->where('request_id =?', $this->getHeaderField("REQUEST_ID"))->order('id DESC');
             } else {
                 $select = Np_Db::slave()->select()->from('Transactions')->where('request_id =?', $this->getHeaderField("REQUEST_ID"))->where('message_type =?', "Request")->order('id DESC');
             }
             $last_transaction = $select->query()->fetchObject();
             $this->last_method = $last_transaction->message_type;
             $this->last_method_time = $last_transaction->last_transaction_time;
         } else {
             $this->last_method = $result->last_transaction;
             $this->last_method_time = $result->last_request_time;
         }
         $this->last_transfer_time = $result->transfer_time;
         return $this->RequestValidateDB($result);
     }
     return false;
 }
コード例 #6
0
ファイル: Internal.php プロジェクト: carriercomm/NPG
 /**
  *
  * @return String transfer date of autocheck if it's autocheck else false
  */
 protected function isAutoCheck()
 {
     $tbl = new Application_Model_DbTable_Requests(Np_Db::slave());
     $select = $tbl->select()->where('request_id=?', $this->params['REQUEST_ID'])->order('id DESC');
     $result = $select->query()->fetchObject();
     if ($result && $result->auto_check) {
         return Application_Model_General::getDateTimeInTimeStamp($result->transfer_time);
     }
     return false;
 }
コード例 #7
0
ファイル: General.php プロジェクト: carriercomm/NPG
 /**
  * retrieve all providers respond to publish
  * 
  * @param string $request_id the request id that need to be checked
  * 
  * @return array of providers
  */
 public static function getProvidersRequestWithPublishResponse($request_id)
 {
     $db = Np_Db::slave();
     $select = $db->select();
     $internalProvider = Application_Model_General::getSettings('InternalProvider');
     $select->from('Transactions');
     //, array('provider' => new Zend_Db_Expr('SUBSTR(trx_no,1,2)') ,'request_id')); //THERE IS NO FROM FIELD!!
     $select->where('request_id = ?', $request_id)->where('message_type = ?', 'Publish_response')->where('target = ?', $internalProvider)->where('reject_reason_code is NULL');
     $result = $db->query($select);
     $rows = $result->fetchAll();
     $publish_response_providers = array();
     foreach ($rows as $row) {
         $publish_response_providers[] = substr($row['trx_no'], 0, 2);
     }
     return $publish_response_providers;
 }