Ejemplo n.º 1
0
 public function updateStatus($logId)
 {
     $criteria = new Criteria();
     $criteria->add(SmsLogRecipientPeer::LOG_ID, $logId, Criteria::EQUAL);
     $criteria->add(SmsLogRecipientPeer::STATUS, 'queue', Criteria::EQUAL);
     $criteria->addAscendingOrderByColumn(SmsLogRecipientPeer::RECIPIENT_ID);
     $criteria->setLimit(100);
     $log = SmsLogRecipientPeer::doSelect($criteria);
     $logString = '(';
     $logCount = count($log);
     if ($logCount < 1) {
         return false;
     }
     $n = 1;
     foreach ($log as $l) {
         $logString .= $l->getId();
         if ($n != $logCount) {
             $logString .= ', ';
         }
         $n++;
     }
     $logString .= ')';
     $result = $this->conn->get_results("SELECT sms_outbox.id as id, sms_outbox.log_id as log_id, sentitems.Status as status FROM sms_outbox, sentitems WHERE sms_outbox.id = sentitems.Id AND sms_outbox.log_id IN {$logString} ORDER BY sms_outbox.id ASC");
     if (!$result) {
         return false;
     }
     $status = array();
     $statusString = array('SendingOK' => 'sent', 'SendingError' => 'error');
     foreach ($result as $r) {
         $status[$r->log_id] = $statusString[$r->status];
     }
     foreach ($log as $l) {
         if (!empty($status[$l->getId()])) {
             $l->setStatus($status[$l->getId()]);
             $l->save();
         }
     }
 }
Ejemplo n.º 2
0
 public static function retrieveByPKs($pks, $con = null)
 {
     if ($con === null) {
         $con = Propel::getConnection(self::DATABASE_NAME);
     }
     $objs = null;
     if (empty($pks)) {
         $objs = array();
     } else {
         $criteria = new Criteria();
         $criteria->add(SmsLogRecipientPeer::ID, $pks, Criteria::IN);
         $objs = SmsLogRecipientPeer::doSelect($criteria, $con);
     }
     return $objs;
 }
Ejemplo n.º 3
0
 public function executeRepair()
 {
     $query = "SELECT * FROM sms_outbox WHERE log_id < 200 AND phone_id = 'smpia19' ORDER BY log_id DESC LIMIT 50";
     $results = $this->sms->conn->get_results($query);
     foreach ($results as $r) {
         echo $r->log_id . '<br />';
         echo $r->id . ' phone number ' . $r->destination_number . '<br />';
         $c = new Criteria();
         $c->add(SmsLogRecipientPeer::LOG_ID, $r->log_id, Criteria::EQUAL);
         $c->add(SmsLogRecipientPeer::RECIPIENT_NUMBER, '%' . $r->destination_number . '%', Criteria::LIKE);
         $log = SmsLogRecipientPeer::doSelectOne($c);
         if ($log) {
             $update = "UPDATE sms_outbox SET log_id = {$log->getId()} WHERE id = {$r->id}";
             $this->sms->conn->query($update);
             echo 'update to ' . $log->getId() . '<br />';
         }
         echo '<hr />';
     }
     die;
 }
Ejemplo n.º 4
0
 public function countSmsLogRecipients($criteria = null, $distinct = false, $con = null)
 {
     include_once 'lib/model/om/BaseSmsLogRecipientPeer.php';
     if ($criteria === null) {
         $criteria = new Criteria();
     } elseif ($criteria instanceof Criteria) {
         $criteria = clone $criteria;
     }
     $criteria->add(SmsLogRecipientPeer::LOG_ID, $this->getId());
     return SmsLogRecipientPeer::doCount($criteria, $distinct, $con);
 }
Ejemplo n.º 5
0
 public function executeTest()
 {
     $log = SmsLogPeer::doSelect(new Criteria());
     foreach ($log as $l) {
         $jsonwrapper = new jsonwrapper();
         $rc = new Criteria();
         $rc->add(SmsLogRecipientPeer::LOG_ID, $l->getId(), Criteria::EQUAL);
         $recipientCount = SmsLogRecipientPeer::doCount($rc);
         $count = $recipientCount * $l->getSmsLong();
         $l->setSmsCount($count);
         $l->save();
         //$count = ceil(strlen($l->getMessage()) / 140);
         //$l->setSmsCount($count);
         //$l->save();
     }
     die;
 }
Ejemplo n.º 6
0
 public function fromArray($arr, $keyType = BasePeer::TYPE_PHPNAME)
 {
     $keys = SmsLogRecipientPeer::getFieldNames($keyType);
     if (array_key_exists($keys[0], $arr)) {
         $this->setId($arr[$keys[0]]);
     }
     if (array_key_exists($keys[1], $arr)) {
         $this->setLogId($arr[$keys[1]]);
     }
     if (array_key_exists($keys[2], $arr)) {
         $this->setGammuSmsId($arr[$keys[2]]);
     }
     if (array_key_exists($keys[3], $arr)) {
         $this->setRecipientType($arr[$keys[3]]);
     }
     if (array_key_exists($keys[4], $arr)) {
         $this->setRecipientGroupId($arr[$keys[4]]);
     }
     if (array_key_exists($keys[5], $arr)) {
         $this->setRecipientId($arr[$keys[5]]);
     }
     if (array_key_exists($keys[6], $arr)) {
         $this->setRecipientNumber($arr[$keys[6]]);
     }
     if (array_key_exists($keys[7], $arr)) {
         $this->setStatus($arr[$keys[7]]);
     }
     if (array_key_exists($keys[8], $arr)) {
         $this->setLog($arr[$keys[8]]);
     }
 }
Ejemplo n.º 7
0
 public function sendSmsToStudent($senderId, $employeeId, $userType, $sms, $students)
 {
     /* Mapping Recipients */
     $recipients = array();
     foreach ($students as $student) {
         $recipients[] = array('type' => 'student', 'value' => $student->getId());
     }
     /* ------------------ */
     /* Save SMS Log */
     /* ------------------ */
     $log = new SmsLog();
     $log->setCreatorUserId($employeeId);
     $log->setCreatorType($userType);
     $log->setSubject($sms['subject']);
     $log->setRecipient($this->jsonwrapper->json_encode($recipients));
     $log->setMessage($sms['message']);
     $log->setCreated(date('Y-m-d H:i:s'));
     $sendAt = date('Y-m-d H:i:s');
     $log->setSendAt('now');
     $log->setSenderId($senderId);
     $log->save();
     if (!$log) {
         $this->jsonwrapper->show_json_error('#send-02-save', 'Failed save log');
     }
     /* ------------------ */
     /* ------------------ */
     /* ------------------ */
     foreach ($students as $s) {
         if ($s->getStudentDetail()) {
             $recNumber = $s->getStudentDetail()->getCellphone();
             //echo $recNumber . '<br />';
             $rec = new SmsLogRecipient();
             $rec->setLogId($log->getId());
             $rec->setRecipientId($s->getId());
             $rec->setRecipientType('student');
             $rec->setRecipientNumber($recNumber);
             $rec->setStatus('pending');
             $rec->setLog(0);
             $rec->save();
             /* Saving to gammu Database */
             $save = $this->smsConn->send($rec->getId(), 1, 2, 3, $recNumber, $log->getMessage(), $log->getCreated(), $log->getSendAt());
         }
     }
     $rc = new Criteria();
     $rc->add(SmsLogRecipientPeer::LOG_ID, $log->getId(), Criteria::EQUAL);
     $recipientCount = SmsLogRecipientPeer::doCount($rc);
     $smsLong = ceil(strlen($sms['message']) / $this->smsConn->smsLong());
     $smsCount = $smsLong * $recipientCount;
     $log->setSmsLong($smsLong);
     $log->setSmsCount($smsCount);
     $log->save();
 }