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(); }
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; }