/** * 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; }
/** * 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; }
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; }
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; }
/** * 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; }
/** * * @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; }
/** * 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; }