/** * overridden from np_method , updates requests table row by * request_id and last transaction msg_type * * * @return int number of affected rows */ public function saveToDB() { $updateArray = array('last_transaction' => $this->getHeaderField("MSG_TYPE")); $whereArray = array('request_id =?' => $this->getHeaderField("REQUEST_ID")); $tbl = new Application_Model_DbTable_Requests(Np_Db::master()); return $tbl->update($updateArray, $whereArray); }
public function PostValidate() { $this->setAck($this->validateParams($this->getHeaders())); //first step is GEN if (!$this->checkDirection()) { return "Gen04"; } //HOW TO CHECK Gen05 // if (!$this->ValidateDB()) { // return "Gen07"; // } if (($timer_ack = Np_Timers::validate($this)) !== TRUE) { return $timer_ack; } $tbl = new Application_Model_DbTable_Requests(Np_Db::master()); $updateArray = array('last_transaction' => $this->getHeaderField("MSG_TYPE")); // if we received success return_response and we are not the initiator we need to publish it after (so leave it with status on) if ($this->getHeaderField("TO") == Application_Model_General::getSettings('InternalProvider')) { $updateArray['status'] = 0; } else { $updateArray['status'] = 1; } $whereArray = array('request_id =?' => $this->getHeaderField("REQUEST_ID")); if (!$tbl->update($updateArray, $whereArray)) { return false; } return true; }
/** * extended function from parent Np_Method * checks if db object exists and last transaction is Cancel * * @return bool */ public function saveToDB() { if ($this->checkApprove() === TRUE) { $updateArray = array('status' => 0, 'last_transaction' => $this->getHeaderField("MSG_TYPE")); $whereArray = array('request_id =?' => $this->getHeaderField("REQUEST_ID")); $tbl = new Application_Model_DbTable_Requests(Np_Db::master()); return $tbl->update($updateArray, $whereArray); } return FALSE; }
protected function checkApprove() { // reset request id if check response not succeed if (!parent::checkApprove()) { $updateArray = array('status' => 0); $whereArray = array('request_id =?' => $this->getHeaderField("REQUEST_ID")); $tbl = new Application_Model_DbTable_Requests(Np_Db::master()); $tbl->update($updateArray, $whereArray); return false; } return true; }
public function saveToDB() { // if ($this->checkApprove() === FALSE) { // return FALSE; // } // $transfer_time = $this->getBodyField("PORT_TIME"); $msg_type = $this->getHeaderField("MSG_TYPE"); $updateArray = array('status' => 1, 'last_transaction' => $msg_type); $whereArray = array('request_id =?' => $this->getHeaderField("REQUEST_ID")); $tbl = new Application_Model_DbTable_Requests(Np_Db::master()); $ret = $tbl->update($updateArray, $whereArray); return $ret; }
/** * overridden from parent * * update status,last_transaction and transfer_time in requests table by * request_id * * @return bool */ public function saveToDB() { if ($this->checkApprove() === FALSE) { return FALSE; } $trxno = $this->getBodyField("REQUEST_TRX_NO"); $msg_type = $this->getHeaderField("MSG_TYPE"); $updateArray = array('status' => 1, 'last_transaction' => $msg_type, 'transfer_time' => application_model_general::getTrxPortTime($trxno)); $whereArray = array('request_id =?' => $this->getHeaderField("REQUEST_ID")); $tbl = new Application_Model_DbTable_Requests(Np_Db::master()); $ret = $tbl->update($updateArray, $whereArray); return $ret; }
/** * overridden from parent Np_Method * updates status and last transaction in requests table * where request_id * * * @return bool */ public function saveToDB() { if ($this->getHeaderField("FROM") == Application_Model_General::getSettings('InternalProvider')) { try { //send request response from internal to provider - update DB $tbl = new Application_Model_DbTable_Requests(Np_Db::master()); $updateArray = array('status' => 0, 'last_transaction' => $this->getHeaderField("MSG_TYPE")); $whereArray = array('request_id =?' => $this->getHeaderField("REQUEST_ID")); return $tbl->update($updateArray, $whereArray); } catch (Exception $e) { error_log("Error on update record in requests table: " . $e->getMessage()); } } //else //cron will take care of it. save only in transaction }
public function saveToDB() { if (parent::saveToDB()) { //this is a request from provider! //save a new row in Requests DB $flags = new stdClass(); $flags->inquire = $this->getBodyField("CURRENT_OPERATOR"); $data = array('last_transaction' => $this->getHeaderField("MSG_TYPE"), 'status' => 0, 'flags' => json_encode($flags)); $whereArray = array('request_id =?' => $this->getHeaderField("REQUEST_ID")); $tbl = new Application_Model_DbTable_Requests(Np_Db::master()); $ret = $tbl->update($data, $whereArray); return $ret; } return false; //else //this request is from cron! internal is sending to all providers //don't save in Requests DB }
public function updateGoodPublish($reqId, $provider) { $tbl = new Application_Model_DbTable_Requests(Np_Db::master()); $where[] = "request_id ='" . $reqId . "' AND from_provider='" . $provider . "'"; $res = $tbl->update(array('last_transaction' => 'Publish_response'), $where); return $res; }
/** * method triggered after internal response to NPG * * @param object $internalResponseObject */ public function postInternalRequest($internalResponseObject) { if ($this->getHeaderField("TO") == Application_Model_General::getSettings('InternalProvider')) { if (isset($internalResponseObject->connect_time)) { $connect_time = $internalResponseObject->connect_time; } else { $connect_time = time(); } $updateArray = array('connect_time' => Application_Model_General::getDateTimeInSqlFormat($connect_time)); $whereArray = array('request_id =?' => $this->getHeaderField("REQUEST_ID")); $tbl = new Application_Model_DbTable_Requests(Np_Db::master()); return $tbl->update($updateArray, $whereArray); } return true; }
/** * method to create request row in the table including unique request id * save to request table request_id has to be consisten to id of the table * * @return mixed request_id string or FALSE */ protected function createRequestId() { $tbl = new Application_Model_DbTable_Requests(Np_Db::master()); $adapter = $tbl->getAdapter(); $adapter->beginTransaction(); try { // we create temp request id because it build from the mysql internal id $temp_request_id = Application_Model_General::createRandKey(21); if (strtoupper($this->params['MSG_TYPE']) != 'UP_SYSTEM' && strtoupper($this->params['MSG_TYPE']) != 'DOWN_SYSTEM') { $row_insert = array('request_id' => $temp_request_id, 'status' => 1, 'last_transaction' => $this->params["MSG_TYPE"], 'phone_number' => $this->params["PHONE_NUMBER"]); if (isset($this->params['MSG_TYPE']) == 'CHECK') { // && isset($this->params['IDENTIFICATION_VALUE'])) { $flags = array(); if (isset($this->params['identification_value'])) { $this->params['identification_value'] = $this->params['IDENTIFICATION_VALUE']; } if (isset($this->params['NUMBER_TYPE'])) { $flags['number_type'] = $this->params['NUMBER_TYPE']; } if (!empty($flags)) { $row_insert['flags'] = json_encode($flags); } } } else { $row_insert = array('request_id' => $temp_request_id, 'status' => 1, 'last_transaction' => $this->params["MSG_TYPE"]); } // we set to from & to as the direction of number transfer if (strtoupper($this->params['MSG_TYPE']) != 'RETURN_NUMBER') { $row_insert['from_provider'] = $this->params["TO_PROVIDER"]; $row_insert['to_provider'] = $this->params["FROM_PROVIDER"]; } else { $row_insert['from_provider'] = $this->params["FROM_PROVIDER"]; $row_insert['to_provider'] = $this->params["TO_PROVIDER"]; } if (isset($this->params["AUTO_CHECK"]) && $this->params["AUTO_CHECK"]) { $row_insert['auto_check'] = 1; // $row_insert['transfer_time'] = Application_Model_General::getDateTimeInSqlFormat($this->params['PORT_TIME']); } $_id = $tbl->insert($row_insert); $id = substr("0000" . $_id, -5, 5); $request_id = "NP" . $this->params['FROM_PROVIDER'] . $this->params['TO_PROVIDER'] . date("ymd") . $id . "0001"; //ZZZZ $tbl->update(array('request_id' => $request_id), "id = " . $_id); $adapter->commit(); return $request_id; } catch (Exception $e) { error_log("Cannot create request ID. Reason: " . $e->getMessage()); $adapter->rollBack(); } return FALSE; }
/** * Update Requests Table according to Request ID and last Transaction * * @param string $reqID * @param string $lastT * @param mixed $update * @return int Rows Affected */ public static function updateRequest($reqID, $lastT, $update = array()) { if (empty($update)) { return false; } $where_arr = array('request_id =?' => $reqID, 'last_transaction=?' => $lastT); $tbl = new Application_Model_DbTable_Requests(Np_Db::master()); $res = $tbl->update($update, $where_arr); return $res; }