コード例 #1
0
ファイル: KDUpdate.php プロジェクト: carriercomm/NPG
 /**
  * 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);
 }
コード例 #2
0
ファイル: ReturnResponse.php プロジェクト: carriercomm/NPG
 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;
 }
コード例 #3
0
ファイル: CancelResponse.php プロジェクト: carriercomm/NPG
 /**
  * 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;
 }
コード例 #4
0
ファイル: InquireNumber.php プロジェクト: carriercomm/NPG
 public function saveToDB()
 {
     if ($this->getHeaderField("TRX_NO")) {
         //this is a request from provider!
         //save a new row in Requests DB
         $tbl = new Application_Model_DbTable_Requests(Np_Db::master());
         $data = array('status' => 1, 'request_id' => $this->getHeaderField("REQUEST_ID"), 'phone_number' => $this->getBodyField("NUMBER"), 'from_provider' => $this->getHeaderField("TO"), 'to_provider' => $this->getHeaderField("FROM"), 'last_transaction' => $this->getHeaderField("MSG_TYPE"));
         return $tbl->insert($data);
     }
     //else //this request is from cron! internal is sending to all providers
     //don't save in Requests DB
 }
コード例 #5
0
ファイル: Return.php プロジェクト: carriercomm/NPG
 /**
  * overridden function from parent Np_Method
  * 
  * inserts row to requests table
  * 
  * @return bool 
  */
 public function saveToDB()
 {
     //INSERT into Requests
     if ($this->getHeaderField("TO") == Application_Model_General::getSettings('InternalProvider')) {
         // if the check received from external provider create request
         // request id already exists
         //else - it's from internal - already INSERT into Requests
         $data = array('request_id' => $this->getHeaderField("REQUEST_ID"), 'from_provider' => $this->getHeaderField("FROM"), 'to_provider' => $this->getHeaderField("TO"), 'status' => 1, 'last_transaction' => $this->getHeaderField("MSG_TYPE"), 'phone_number' => $this->getBodyField("NUMBER"));
         $tbl = new Application_Model_DbTable_Requests(Np_Db::master());
         return $tbl->insert($data);
     }
 }
コード例 #6
0
ファイル: CheckResponse.php プロジェクト: carriercomm/NPG
 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;
 }
コード例 #7
0
ファイル: Update.php プロジェクト: carriercomm/NPG
 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;
 }
コード例 #8
0
ファイル: UpdateResponse.php プロジェクト: carriercomm/NPG
 /**
  * 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;
 }
コード例 #9
0
ファイル: PublishResponse.php プロジェクト: carriercomm/NPG
 /**
  * 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
 }
コード例 #10
0
 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
 }
コード例 #11
0
ファイル: Cron.php プロジェクト: carriercomm/NPG
 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;
 }
コード例 #12
0
ファイル: Monitor.php プロジェクト: carriercomm/NPG
 public function saveRow($row)
 {
     $id = $row['id'];
     unset($row['id']);
     $table = $row['table'];
     unset($row['table']);
     // date fields empty should be set to null, else they will set to 00-00-00 00:00:00
     $date_fields_array = array('transfer_time', 'disconnect_time', 'connect_time');
     foreach ($date_fields_array as $field) {
         if (empty($row[$field])) {
             $row[$field] = null;
         }
     }
     $table_class = 'Application_Model_DbTable_' . ucfirst($table);
     if (class_exists($table_class)) {
         $table_object = new $table_class(Np_Db::master());
         $ret = $table_object->update($row, array('id = ' . $id));
         if (!$ret) {
             print "Nothing update...";
         }
         sleep(1.5);
     }
 }
コード例 #13
0
ファイル: ExecuteResponse.php プロジェクト: carriercomm/NPG
 /**
  * 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;
 }
コード例 #14
0
ファイル: Internal.php プロジェクト: carriercomm/NPG
 /**
  * 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;
 }
コード例 #15
0
ファイル: Check.php プロジェクト: carriercomm/NPG
 /**
  * overridden function from parent Np_Method
  * 
  * inserts row to requests table
  * 
  * @return bool 
  */
 public function saveToDB()
 {
     if ($this->ValidateDB() === FALSE) {
         return FALSE;
     }
     if ($this->getHeaderField("FROM") != Application_Model_General::getSettings('InternalProvider')) {
         // if the check received from external provider create request
         // request id already exists
         //else - it's from internal - already INSERT into Requests
         try {
             $data = array('request_id' => $this->getHeaderField("REQUEST_ID"), 'from_provider' => $this->getHeaderField("TO"), 'to_provider' => $this->getHeaderField("FROM"), 'status' => 1, 'last_transaction' => $this->getHeaderField("MSG_TYPE"), 'phone_number' => $this->getBodyField("NUMBER"));
             $tbl = new Application_Model_DbTable_Requests(Np_Db::master());
             return $tbl->insert($data);
         } catch (Exception $e) {
             error_log("Error on create record in transactions table: " . $e->getMessage());
         }
     }
 }
コード例 #16
0
ファイル: Request.php プロジェクト: carriercomm/NPG
 /**
  * saveTransactionDB saves data to Transactions table in db
  * @return bool db Success or Failure 
  */
 protected function saveTransactionsDB($TRX = FALSE)
 {
     $tbl = new Application_Model_DbTable_Transactions(Np_Db::master());
     if ($TRX != FALSE) {
         $trxNo = $TRX;
     } else {
         $trxNo = $this->request->getHeaderField("TRX_NO");
     }
     $msgType = $this->request->getHeaderField("MSG_TYPE");
     $portTime = $this->request->getBodyField('PORT_TIME');
     $rejectReasonCode = $this->request->getRejectReasonCode();
     $reqId = $this->request->getHeaderField('REQUEST_ID');
     if ($trxNo) {
         $data = array('trx_no' => $trxNo, 'request_id' => $reqId, 'message_type' => $msgType, 'ack_code' => $this->request->getAck(), 'target' => $this->request->getHeaderField("TO"));
         if (!$rejectReasonCode || $rejectReasonCode === NULL || $rejectReasonCode == "") {
             // do nothing
         } else {
             $data['reject_reason_code'] = $rejectReasonCode;
         }
         if ($msgType == "Update" || $msgType == "Request") {
             $data['requested_transfer_time'] = Application_Model_General::getDateTimeInSqlFormat($portTime);
         }
         if ($msgType == "Publish") {
             $data['donor'] = Application_Model_General::getDonorByReqId($reqId);
         }
         $res = $tbl->insert($data);
         return $res;
     } else {
         //this request if from internal - have to add trx_no
         //save to Transactions table trx_no  has to be consisten to id of the table
         $adapter = $tbl->getAdapter();
         $adapter->beginTransaction();
         try {
             $temp_trx_no = Application_Model_General::createRandKey(14);
             if (isset($this->data['request_id'])) {
                 $reqId = $this->data['request_id'];
             }
             $row_insert = array('trx_no' => $temp_trx_no, 'request_id' => $reqId, 'message_type' => $this->request->getHeaderField("MSG_TYPE"), 'ack_code' => $this->request->getAck(), 'target' => $this->request->getHeaderField("TO"));
             if (!$rejectReasonCode || $rejectReasonCode === NULL || $rejectReasonCode == "") {
                 // do nothing
             } else {
                 $row_insert['reject_reason_code'] = $rejectReasonCode;
             }
             if ($msgType == "Update" || $msgType == "Request" || $msgType == "Check" && Application_Model_General::isAutoCheck($reqId)) {
                 $row_insert['requested_transfer_time'] = Application_Model_General::getDateTimeInSqlFormat($portTime);
             }
             if ($msgType == "Publish") {
                 $row_insert['donor'] = Application_Model_General::getDonorByReqId($reqId);
             }
             $_id = $tbl->insert($row_insert);
             $id = substr("00000000000" . $_id, -12, 12);
             $trx_no = Application_Model_General::getSettings('InternalProvider') . $id;
             $ret = $tbl->update(array('trx_no' => $trx_no), "id = " . $_id);
             $this->request->setTrxNo($trx_no);
             $adapter->commit();
             return true;
         } catch (Exception $e) {
             error_log("Error on create record in transactions table: " . $e->getMessage());
             $adapter->rollBack();
             return false;
         }
     }
 }
コード例 #17
0
ファイル: Publish.php プロジェクト: carriercomm/NPG
 /**
  * overridden from parent
  * 
  * inserts row to database
  * 
  * @return type 
  */
 public function saveToDB()
 {
     //this is a request from provider!
     //save a new row in Requests DB
     if ($this->getHeaderField("FROM") != Application_Model_General::getSettings('InternalProvider')) {
         try {
             $flags = new stdClass();
             $flags->publish_type = $this->getBodyField("PUBLISH_TYPE");
             $tbl = new Application_Model_DbTable_Requests(Np_Db::master());
             $data = array('request_id' => $this->getHeaderField("REQUEST_ID"), 'from_provider' => $this->getHeaderField("TO"), 'to_provider' => $this->getHeaderField("FROM"), 'status' => 1, 'last_transaction' => $this->getHeaderField("MSG_TYPE"), 'phone_number' => $this->getBodyField("NUMBER"), 'disconnect_time' => Application_Model_General::getDateTimeInSqlFormat($this->getBodyField("DISCONNECT_TIME")), 'connect_time' => Application_Model_General::getDateTimeInSqlFormat($this->getBodyField("CONNECT_TIME")), 'transfer_time' => Application_Model_General::getDateTimeInSqlFormat(), 'flags' => json_encode($flags));
             return $tbl->insert($data);
         } catch (Exception $e) {
             error_log("Error on create record in transactions table: " . $e->getMessage());
         }
     }
     return TRUE;
 }
コード例 #18
0
ファイル: General.php プロジェクト: carriercomm/NPG
 /**
  * method to update transactions table after ack or reject reason code retreive
  * 
  * @return bool true if success to update else false 
  */
 public static function updateTransactionsAck($trx_no, $ack, $reject_reason_code = null)
 {
     $tbl = new Application_Model_DbTable_Transactions(Np_Db::master());
     $update_arr = array();
     if (!empty($ack)) {
         $update_arr['ack_code'] = $ack;
     }
     if (!empty($reject_reason_code)) {
         $update_arr['reject_reason_code'] = $reject_reason_code;
     }
     // if there is data to update
     if (count($update_arr)) {
         $where_arr = array('trx_no =?' => $trx_no);
         $ret = $tbl->update($update_arr, $where_arr);
         return $ret;
     }
     return FALSE;
 }