示例#1
0
 public function executeReport2()
 {
     $monthName = array(0 => '', 1 => 'January', 2 => 'February', 3 => 'March', 4 => 'April', 5 => 'May', 6 => 'June', 7 => 'July', 8 => 'August', 9 => 'September', 10 => 'October', 11 => 'November', 12 => 'December');
     $param = $this->getAllRequestParameter();
     if (empty($param['type'])) {
         $this->jsonwrapper->show_json_error('#report-type', 'Report Type Not Found');
     }
     if ($param['type'] != 'monthly' && $param['type'] != 'daily') {
         $this->jsonwrapper->show_json_error('#report-type', 'Report Type Not Found');
     }
     if (empty($param['year'])) {
         $this->jsonwrapper->show_json_error('#report-type', 'Year Not Found');
     }
     if (empty($param['month'])) {
         $this->jsonwrapper->show_json_error('#report-type', 'Month Not Found');
     }
     if (empty($param['sender_id'])) {
         $this->jsonwrapper->show_json_error('#report-type', 'Sender Id Not Found');
     }
     $senderId = SmsSenderIdPeer::retrieveByPK($param['sender_id']);
     if (!$senderId) {
         $this->jsonwrapper->show_json_error('not found', 'Sender Id Not Found');
     }
     $report = array();
     if ($param['type'] == 'monthly') {
         for ($i = 1; $i <= 12; $i++) {
             $month = $i;
             if (strlen($i) < 2) {
                 $month = '0' . $i;
             }
             $date = $param['year'] . '-' . $month . '-%';
             /* Sent */
             $connection = Propel::getConnection();
             $query = "\n\t\t\t\t\tSELECT \n\t\t\t\t\t\tsum(log.sms_long) as send \n\t\t\t\t\tFROM \n\t\t\t\t\t\tsms_log_recipient as rec, \n\t\t\t\t\t\tsms_log as log \n\t\t\t\t\tWHERE \n\t\t\t\t\t\trec.log_id = log.id \n\t\t\t\t\tAND\n\t\t\t\t\t\tlog.sender_id = '{$senderId->getId()}'\n\t\t\t\t\tAND\n\t\t\t\t\t\tsend_at LIKE '{$date}'";
             $statement = $connection->prepareStatement($query);
             $resultset = $statement->executeQuery();
             $resultset->next();
             $send = $resultset->getInt('send');
             /* Error */
             $connection = Propel::getConnection();
             $query = "\n\t\t\t\t\tSELECT \n\t\t\t\t\t\tsum(log.sms_long) as error \n\t\t\t\t\tFROM \n\t\t\t\t\t\tsms_log_recipient as rec, \n\t\t\t\t\t\tsms_log as log \n\t\t\t\t\tWHERE \n\t\t\t\t\t\trec.log_id = log.id \n\t\t\t\t\tAND\n\t\t\t\t\t\tlog.sender_id = '{$senderId->getId()}'\n\t\t\t\t\tAND\n\t\t\t\t\t\tlog.send_at LIKE '{$date}'\n\t\t\t\t\tAND\n\t\t\t\t\t\trec.status = 'failed'";
             $statement = $connection->prepareStatement($query);
             $resultset = $statement->executeQuery();
             $resultset->next();
             $error = $resultset->getInt('error');
             /* Success */
             $connection = Propel::getConnection();
             $query = "\n\t\t\t\t\tSELECT \n\t\t\t\t\t\tsum(log.sms_long) as success \n\t\t\t\t\tFROM \n\t\t\t\t\t\tsms_log_recipient as rec, \n\t\t\t\t\t\tsms_log as log \n\t\t\t\t\tWHERE \n\t\t\t\t\t\trec.log_id = log.id \n\t\t\t\t\tAND\n\t\t\t\t\t\tlog.sender_id = '{$senderId->getId()}'\n\t\t\t\t\tAND\n\t\t\t\t\t\tlog.send_at LIKE '{$date}'\n\t\t\t\t\tAND\n\t\t\t\t\t\trec.status = 'sent'";
             $statement = $connection->prepareStatement($query);
             $resultset = $statement->executeQuery();
             $resultset->next();
             $success = $resultset->getInt('success');
             /* Pending */
             $connection = Propel::getConnection();
             $query = "\n\t\t\t\t\tSELECT \n\t\t\t\t\t\tsum(log.sms_long) as pending \n\t\t\t\t\tFROM \n\t\t\t\t\t\tsms_log_recipient as rec, \n\t\t\t\t\t\tsms_log as log \n\t\t\t\t\tWHERE \n\t\t\t\t\t\trec.log_id = log.id \n\t\t\t\t\tAND\n\t\t\t\t\t\tlog.sender_id = '{$senderId->getId()}'\n\t\t\t\t\tAND\n\t\t\t\t\t\tlog.send_at LIKE '{$date}'\n\t\t\t\t\tAND\n\t\t\t\t\t\trec.status = 'pending'";
             $statement = $connection->prepareStatement($query);
             $resultset = $statement->executeQuery();
             $resultset->next();
             $pending = $resultset->getInt('pending');
             /*
             $query = 'SELECT COUNT(*) as count_ FROM sentitems WHERE SenderId = "' . $senderId->getInitial() .'" AND SendingDateTime LIKE "'.$date.'"';
             $sent = $this->sms->conn->get_row($query);
             
             $query = 'SELECT COUNT(*) as count_ FROM sentitems WHERE SenderId = "' . $senderId->getInitial() .'" AND Status = "SendingError" AND SendingDateTime LIKE "'.$date.'"';
             $error = $this->sms->conn->get_row($query);
             
             $query = 'SELECT COUNT(*) as count_ FROM sentitems WHERE SenderId = "' . $senderId->getInitial() .'" AND Status = "SendingOk" AND SendingDateTime LIKE "'.$date.'"';
             $success = $this->sms->conn->get_row($query);
             */
             $report[] = array('sent' => $send ? $send : 0, 'error' => $error ? $error : 0, 'success' => $success ? $success : 0, 'pending' => $pending ? $pending : 0, 'date' => $monthName[$i] . ' ' . $param['year']);
         }
     } else {
         if ($param['type'] == 'daily') {
             $days = cal_days_in_month(CAL_GREGORIAN, $param['month'], $param['year']);
             $month = $param['month'];
             if (strlen($month) < 2) {
                 $month = '0' . $month;
             }
             for ($i = 1; $i <= $days; $i++) {
                 $day = $i;
                 if (strlen($i) < 2) {
                     $day = '0' . $i;
                 }
                 $date = $param['year'] . '-' . $month . '-' . $day . '%';
                 /* Sent */
                 $connection = Propel::getConnection();
                 $query = "\n\t\t\t\t\tSELECT \n\t\t\t\t\t\tsum(log.sms_long) as send \n\t\t\t\t\tFROM \n\t\t\t\t\t\tsms_log_recipient as rec, \n\t\t\t\t\t\tsms_log as log \n\t\t\t\t\tWHERE \n\t\t\t\t\t\trec.log_id = log.id \n\t\t\t\t\tAND\n\t\t\t\t\t\tlog.sender_id = '{$senderId->getId()}'\n\t\t\t\t\tAND\n\t\t\t\t\t\tsend_at LIKE '{$date}'";
                 $statement = $connection->prepareStatement($query);
                 $resultset = $statement->executeQuery();
                 $resultset->next();
                 $send = $resultset->getInt('send');
                 echo $query;
                 echo '<hr />';
                 var_dump($send);
                 echo '<hr />';
                 echo '<hr />';
                 /* Error */
                 $connection = Propel::getConnection();
                 $query = "\n\t\t\t\t\tSELECT \n\t\t\t\t\t\tsum(log.sms_long) as error \n\t\t\t\t\tFROM \n\t\t\t\t\t\tsms_log_recipient as rec, \n\t\t\t\t\t\tsms_log as log \n\t\t\t\t\tWHERE \n\t\t\t\t\t\trec.log_id = log.id \n\t\t\t\t\tAND\n\t\t\t\t\t\tlog.sender_id = '{$senderId->getId()}'\n\t\t\t\t\tAND\n\t\t\t\t\t\tlog.send_at LIKE '{$date}'\n\t\t\t\t\tAND\n\t\t\t\t\t\trec.status = 'failed'";
                 $statement = $connection->prepareStatement($query);
                 $resultset = $statement->executeQuery();
                 $resultset->next();
                 $error = $resultset->getInt('error');
                 /* Success */
                 $connection = Propel::getConnection();
                 $query = "\n\t\t\t\t\tSELECT \n\t\t\t\t\t\tsum(log.sms_long) as success \n\t\t\t\t\tFROM \n\t\t\t\t\t\tsms_log_recipient as rec, \n\t\t\t\t\t\tsms_log as log \n\t\t\t\t\tWHERE \n\t\t\t\t\t\trec.log_id = log.id \n\t\t\t\t\tAND\n\t\t\t\t\t\tlog.sender_id = '{$senderId->getId()}'\n\t\t\t\t\tAND\n\t\t\t\t\t\tlog.send_at LIKE '{$date}'\n\t\t\t\t\tAND\n\t\t\t\t\t\trec.status = 'sent'";
                 $statement = $connection->prepareStatement($query);
                 $resultset = $statement->executeQuery();
                 $resultset->next();
                 $success = $resultset->getInt('success');
                 /* Pending */
                 $connection = Propel::getConnection();
                 $query = "\n\t\t\t\t\tSELECT \n\t\t\t\t\t\tsum(log.sms_long) as pending \n\t\t\t\t\tFROM \n\t\t\t\t\t\tsms_log_recipient as rec, \n\t\t\t\t\t\tsms_log as log \n\t\t\t\t\tWHERE \n\t\t\t\t\t\trec.log_id = log.id \n\t\t\t\t\tAND\n\t\t\t\t\t\tlog.sender_id = '{$senderId->getId()}'\n\t\t\t\t\tAND\n\t\t\t\t\t\tlog.send_at LIKE '{$date}'\n\t\t\t\t\tAND\n\t\t\t\t\t\trec.status = 'pending'";
                 $statement = $connection->prepareStatement($query);
                 $resultset = $statement->executeQuery();
                 $resultset->next();
                 $pending = $resultset->getInt('pending');
                 /*
                 $query = 'SELECT COUNT(*) as count_ FROM sentitems WHERE SenderId = "' . $senderId->getInitial() .'" AND SendingDateTime LIKE "'.$date.'"';
                 $sent = $this->sms->conn->get_row($query);
                 
                 $query = 'SELECT COUNT(*) as count_ FROM sentitems WHERE SenderId = "' . $senderId->getInitial() .'" AND Status = "SendingError" AND SendingDateTime LIKE "'.$date.'"';
                 $error = $this->sms->conn->get_row($query);
                 
                 $query = 'SELECT COUNT(*) as count_ FROM sentitems WHERE SenderId = "' . $senderId->getInitial() .'" AND Status = "SendingOk" AND SendingDateTime LIKE "'.$date.'"';
                 $success = $this->sms->conn->get_row($query);
                 */
                 $report[] = array('sent' => $send ? $send : 0, 'error' => $error ? $error : 0, 'success' => $success ? $success : 0, 'pending' => $pending ? $pending : 0, 'date' => $i . ' ' . $monthName[$param['month']] . ' ' . $param['year']);
             }
         }
     }
     /*
     $output = array(
     	'success' => 1,
     	'data' => $report
     );
     $this->jsonwrapper->print_json($output);
     */
     die;
 }
示例#2
0
 public function getSmsSenderId($con = null)
 {
     include_once 'lib/model/om/BaseSmsSenderIdPeer.php';
     if ($this->aSmsSenderId === null && $this->sender_id !== null) {
         $this->aSmsSenderId = SmsSenderIdPeer::retrieveByPK($this->sender_id, $con);
     }
     return $this->aSmsSenderId;
 }
示例#3
0
 public function fromArray($arr, $keyType = BasePeer::TYPE_PHPNAME)
 {
     $keys = SmsSenderIdPeer::getFieldNames($keyType);
     if (array_key_exists($keys[0], $arr)) {
         $this->setId($arr[$keys[0]]);
     }
     if (array_key_exists($keys[1], $arr)) {
         $this->setDepartmentId($arr[$keys[1]]);
     }
     if (array_key_exists($keys[2], $arr)) {
         $this->setInitial($arr[$keys[2]]);
     }
     if (array_key_exists($keys[3], $arr)) {
         $this->setName($arr[$keys[3]]);
     }
     if (array_key_exists($keys[4], $arr)) {
         $this->setText($arr[$keys[4]]);
     }
 }
示例#4
0
 public static function doSelectJoinAll(Criteria $c, $con = null)
 {
     $c = clone $c;
     if ($c->getDbName() == Propel::getDefaultDB()) {
         $c->setDbName(self::DATABASE_NAME);
     }
     SmsLogPeer::addSelectColumns($c);
     $startcol2 = SmsLogPeer::NUM_COLUMNS - SmsLogPeer::NUM_LAZY_LOAD_COLUMNS + 1;
     SmsSenderIdPeer::addSelectColumns($c);
     $startcol3 = $startcol2 + SmsSenderIdPeer::NUM_COLUMNS;
     $c->addJoin(SmsLogPeer::SENDER_ID, SmsSenderIdPeer::ID);
     $rs = BasePeer::doSelect($c, $con);
     $results = array();
     while ($rs->next()) {
         $omClass = SmsLogPeer::getOMClass();
         $cls = Propel::import($omClass);
         $obj1 = new $cls();
         $obj1->hydrate($rs);
         $omClass = SmsSenderIdPeer::getOMClass();
         $cls = Propel::import($omClass);
         $obj2 = new $cls();
         $obj2->hydrate($rs, $startcol2);
         $newObject = true;
         for ($j = 0, $resCount = count($results); $j < $resCount; $j++) {
             $temp_obj1 = $results[$j];
             $temp_obj2 = $temp_obj1->getSmsSenderId();
             if ($temp_obj2->getPrimaryKey() === $obj2->getPrimaryKey()) {
                 $newObject = false;
                 $temp_obj2->addSmsLog($obj1);
                 break;
             }
         }
         if ($newObject) {
             $obj2->initSmsLogs();
             $obj2->addSmsLog($obj1);
         }
         $results[] = $obj1;
     }
     return $results;
 }
示例#5
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(SmsSenderIdPeer::ID, $pks, Criteria::IN);
         $objs = SmsSenderIdPeer::doSelect($criteria, $con);
     }
     return $objs;
 }
示例#6
0
 public function getSenderID($departmentId)
 {
     $senderIdCriteria = new Criteria();
     $senderIdCriteria->add(SmsSenderIdPeer::DEPARTMENT_ID, $departmentId, Criteria::EQUAL);
     return SmsSenderIdPeer::doSelectOne($senderIdCriteria);
 }