public function isValid($data) { $serviceSetmodel = new WsServiceSet(); $serviceSetInfo = $serviceSetmodel->getSet($data['ws_service_set_id']); if ($serviceSetInfo === null) { $this->setErrorMessages(array('Brak danych o wysyłce')); } $isValid = parent::isValid($data); if ($isValid) { $this->_receiveFiles('addressbook_import_csv'); if ($serviceSetInfo->file_type == Logic_Ws_ServiceSet_ServiceSet::TYPE_VAR) { $tagsValidator = $this->tagsValidator($data, $serviceSetInfo); if (!empty($tagsValidator)) { $isValid = false; $this->setErrorMessages($tagsValidator); } } } return $isValid; }
public function getservicesAction() { $this->getHelper('viewRenderer')->setNoRender(); $this->_helper->layout->disableLayout(); $request = $this->getRequest(); $id = $request->getPost('service_set', 0); if ($id > 0) { $serviceSetModel = new WsServiceSet(); $serviceSet = $serviceSetModel->getSet($id); if ($serviceSet === null) { return; } echo Zend_Json::encode($serviceSet->toArray()); } }
public function tagsValidator($data) { $file = $this->getReceivedFiles(); foreach ($file as $f) { if (is_file($f) === false) { throw new Logic_Exception("Temporary files does not exists!"); } if ($fp = fopen($f, 'r')) { $serviceSetModel = new WsServiceSet(); $template = $serviceSetModel->getSet($data['ws_service_set_id']); $delimiter = intval($data['delimeter']) == 1 ? ',' : ';'; $tags = fgetcsv($fp, filesize($f), $delimiter); $key = array_search($data['phone_heders'], $tags); if ($key != false) { if (key_exists($key, $tags)) { unset($tags[$key]); } } $validator = new Logic_Validate_TemplateCompare($tags, '/<([\\w\\s\\-ęóąśłżźńŚŁŻŹĆ])*>/'); $validator->isValid($template->message); } return $validator->getMessages(); } }
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; }