コード例 #1
0
ファイル: RaportsController.php プロジェクト: knatorski/SMS
 public function indexAction()
 {
     $request = $this->getRequest();
     $form = new Logic_Raports_Form_Search();
     $search = new Logic_Raports_Search($this->_model);
     if ($request->isPost()) {
         $values = $request->getPost();
         if ($form->isValid($values)) {
             if (isset($values['create_raport'])) {
                 if ($this->_model->getRaportByDate($values['date_for'], $values['date_to']) === null) {
                     $config = Zend_Registry::get('config');
                     $base = $config['general']['default']['base_path'];
                     $date = new Zend_Date();
                     $values['hash'] = SHA1($date->getTimestamp());
                     $this->_model->addRaport($values);
                     $form->date_for->setValue('');
                     $form->date_to->setValue('');
                     $view = new Zend_View();
                     $date = new Zend_Date();
                     throw new Exception("Do zmiany.");
                     $packageModel = new WsPackageMail();
                     $packageQueue = new WsPackageQueue();
                     $packageData = new WsPackageDataMail();
                     $package = $packageModel->addPackage(array('name' => 'wysyka raportu', 'time_send_start' => '08:00', 'time_send_end' => "20:00", 'send_start' => $date->getDate()->toString('YYYY-MM-dd'), 'file_type' => Logic_Ws_ServiceSet_ServiceSet::TYPE_ANY));
                     /* TODO zmiana adresu email doręczena raportów */
                     $view->setScriptPath(APPLICATION_PATH . '/views/scripts/_mail/');
                     $view->output = array('baseurl' => $base, 'hash' => $values['hash']);
                     $packageData->addPackageData(array('message' => $view->render('sendreport.phtml'), 'ws_package_id' => $package, 'email_address' => '*****@*****.**'));
                     $packageQueue->addQueue(array('ws_package_id' => $package));
                 }
             }
         }
     }
     $this->view->form = $form;
     $this->view->headers = $search->getHeaders();
     $this->view->paginator = $search->paginator();
 }
コード例 #2
0
ファイル: buildmessage_cmd.php プロジェクト: knatorski/SMS
 private function _getData()
 {
     $packageQueueModel = new WsPackageQueue();
     $wsServiceSetModel = new WsServiceSet();
     $i = 0;
     $data = array();
     foreach ($packageQueueModel->getQueueToSend() as $queue) {
         if ($i < $this->_packageSize) {
             $message = '';
             $packageInfo = $this->_packageModel->findOne($queue->ws_package_id);
             if (!empty($packageInfo)) {
                 $serviceSet = $wsServiceSetModel->getSet($packageInfo->ws_service_set_id);
                 if ($serviceSet) {
                     $type = $serviceSet->file_type;
                     $packageDate = $this->_dataModel->getPackageDataByPackage($packageInfo->id)->toArray();
                     switch ($type) {
                         case Logic_Ws_ServiceSet_ServiceSet::TYPE_CONST:
                             foreach ($packageDate as $messageData) {
                                 $data[$queue->ws_package_id][] = array('recipient' => $messageData[$this->_recipientColumn], 'message' => $serviceSet->message);
                                 $i++;
                             }
                             break;
                         case Logic_Ws_ServiceSet_ServiceSet::TYPE_VAR:
                             foreach ($packageDate as $messageData) {
                                 $tags = Zend_Json_Decoder::decode($messageData['tags']);
                                 $template = $serviceSet->message;
                                 foreach ($tags as $key => $val) {
                                     $template = str_replace('{' . $key . '}', $val, $template);
                                     $i++;
                                 }
                                 $data[$queue->ws_package_id][] = array('recipient' => $messageData[$this->_recipientColumn], 'message' => $template);
                             }
                             break;
                         case Logic_Ws_ServiceSet_ServiceSet::TYPE_ANY:
                             foreach ($packageDate as $messageData) {
                                 $data[$queue->ws_package_id][] = array('recipient' => $messageData[$this->_recipientColumn], 'message' => $messageData['message']);
                                 $i++;
                             }
                             break;
                     }
                     $packageQueueModel->updateQueue(array('is_send' => 'true', 'last_get' => new Zend_Db_Expr('now()')), $queue->id);
                 }
             }
         }
     }
     /*foreach($packageQueueModel->getQueueToSend() as $queue) {
           if($i < $this->_packageSize) {
               $toSend = true;
               $message = '';
               $packageInfo =  $this->_packageModel->findOne($queue->ws_package_id);
               if(!empty($packageInfo)) {
                   $date2->setTime($packageInfo->time_send_start,"HH:mm:ss");
                   if($date2->getTime()->isLater($date->getTime())) {
                       $toSend = false;
                   }
                   else {
                       $date2->setTime($packageInfo->time_send_end,"HH:mm:ss");
                       if($date2->getTime()->isEarlier($date->getTime())) {
                           $toSend = false;
                       }
                   }
                   if($packageInfo->repeat_message) {
                       if($queue->last_get !== NULL) {
                           $date2->setDate($queue->last_get,"YYYY-MM-dd");
                           switch($packageInfo->repeat_interval) {
                               case 1:
                                   if($date2->isToday()) {
                                       $toSend = false;
                                   }
                                   break;
                               case 2:
                                   if($date->getDate()->isEarlier($date2->addWeek(1)->getDate())) {
                                       $toSend = false;
                                   }
                                   break;
                               case 3 :
                                   if($date->getDate()->isEarlier($date2->addMonth(1)->getDate())) {
                                       $toSend = false;
                                   }
                                   break;
                               case 4:
                                   if($date->getDate()->isEarlier($date2->addDay($packageInfo->repeat_day_interval)->getDate())) {
                                       $toSend = false;
                                   }
                                   break;
                               case 5 :
                                   $days = Zend_Json_Decoder::decode($packageInfo->repeat_days);
                                   if(in_array($date->get(Zend_Date::WEEKDAY_DIGIT), $days)) {
                                       if($date2->isToday()) {
                                           $toSend = false; 
                                       }
                                   }
                                   break;
                           }
                       }
                   }
                   if($toSend) {
                       if($packageInfo->file_type == 1) {
                           $serviceSet = $wsServiceSetModel->getSet($packageInfo->ws_service_set_id);
                           $recipient = $addressbook->getRecipientByAddressbook($packageInfo->ws_addressbook_id)->toArray();
                           foreach($recipient as $r) {
                               if(!empty($r[$this->_recipientColumn])) {
                                   $data[$queue->ws_package_id][] = array('recipient' => $r[$this->_recipientColumn],'message' => $serviceSet->message);
                                   $i++;
                               }
                           }
                       }
                       if($packageInfo->file_type == 2) {
                           $serviceSet = $wsServiceSetModel->getSet($packageInfo->ws_service_set_id);
                           $packageDate = $this->_dataModel->getPackageDataByPackage($packageInfo->id)->toArray();
                           foreach($packageDate as $messageData) {
                               $tags = Zend_Json_Decoder::decode($messageData['tags']);
                               $template = $serviceSet->message;
                               foreach ($tags as $key => $val) {
                                   $template = str_replace('<'.$key.'>',$val,$template);
                                   $i++;
                               }
                               $data[$queue->ws_package_id][] = array('recipient' => $messageData[$this->_recipientColumn],'message' => $template);; 
                           }
                       }
                       if($packageInfo->file_type == 3) { 
                           $packageDate = $this->_dataModel->getPackageDataByPackage($packageInfo->id)->toArray();
                           foreach($packageDate as $messageData) {
                               $data[$queue->ws_package_id][] = array('recipient' => $messageData[$this->_recipientColumn],'message' => $messageData['message']);
                               $i++;
                           }
                       }
                       if(!$packageInfo->repeat_message) {
                           $packageQueueModel->updateQueue(array('is_send' => 'true'), $queue->id);
                       }
                       else {
                           $date2->setDate($packageInfo->repeat_end,'YYYY-MM-dd');
                           if($date2->getDate()->compare($date->getDate()) == 0) {
                               $packageQueueModel->updateQueue(array('is_send' => 'true'), $queue->id); 
                           }
                       }
                   }
                   $packageQueueModel->updateQueue(array('last_get' => new Zend_Db_Expr('now()')),$queue->id); 
               }
           }
       }*/
     return $data;
 }