/** * @return void */ public function baseInit() { $this->phone(); $this->getElement("phone")->setRequired(false); $this->datee(false, 'send_start', 'Data od', false); $this->datee(false, 'send_end', 'Data do', false); $this->send_start->class = $this->send_end->class = 'datepicker-present'; $this->addElement('text', 'author_name', array('label' => 'Użytkownik')); if ($this->_isShipment) { $WsServiceSetModel = new WsServiceSet(); $WsServiceSetArray = $WsServiceSetModel->fetchAll(array('ghost = false', 'status = ' . Logic_Ws_ServiceSet_ServiceSet::STATE_ACTIVE))->toArray(); foreach ($WsServiceSetArray as $set) { $WsServiceSets[$set['id']] = $set['name'] . ' (' . $set['hash'] . ')'; } $this->addElement('select', 'name', array('label' => 'Nazwa wysyłki', 'MultiOptions' => $this->addClearStart($WsServiceSets))); } else { $WsServiceModel = new Wsservice(); $WsServiceArray = $WsServiceModel->getServicesByGroupHash('sms')->toArray(); foreach ($WsServiceArray as $set) { $WsService[$set['id']] = $set['service_name']; } $this->addElement('select', 'name', array('label' => 'Nazwa usługi', 'MultiOptions' => $this->addClearStart($WsService))); } $this->search(); $this->cancel(false, 'cancel', 'Clear'); }
public function __construct($type, $options = null) { $this->type = $type; if ($this->type === Logic_Ws_ServiceSet_ServiceSet::SHIPPING_TYPE_API) { unset($this->namespace['sset']); } $sms = new WsServiceSmsGroup(); $this->sms = $sms->fetchAll(array('ghost = false'), array('name ASC'))->toArray(); $mail = new WsServiceMailGroup(); $this->mail = $mail->fetchAll(array('ghost = false'), array('name ASC'))->toArray(); $sset = new WsServiceSet(); $this->sset = $sset->fetchAll(array('ghost = false', 'status = ' . Logic_Ws_ServiceSet_ServiceSet::STATE_ACTIVE), array('code_name ASC'))->toArray(); parent::__construct($options); }
public function baseInit() { $config = Zend_Registry::get('config'); $WsServiceSetModel = new WsServiceSet(); $dictionary = new Base_Dictionary(); $WsServiceSetArray = $WsServiceSetModel->fetchAll(array('ghost = false', 'status = ' . Logic_Ws_ServiceSet_ServiceSet::STATE_ACTIVE))->toArray(); foreach ($WsServiceSetArray as $set) { $WsServiceSets[$set['id']] = $set['name'] . ' (' . $set['hash'] . ')'; } $this->addElement('select', 'ws_service_set_id', array('required' => true, 'label' => 'Nazwa wysyłki:', 'multioptions' => $this->addClearStart($WsServiceSets))); $this->addElement('select', 'file_type', array('required' => true, 'label' => 'Rodzaj pliku:', 'multioptions' => $this->addClearStart($dictionary->setSource('service_import_file_type')->getDictionary()))); $this->addElement('file', 'service_import_csv', array('decorators' => array('File', array('ViewScript', array('viewScript' => '_form/file.phtml', 'placement' => false))), 'label' => 'CSV z listą smsów do zaimportowania', 'required' => true, 'maxfilesize' => $config['uploads']['maxfilesize'], 'Destination' => $config['uploads']['destination'], 'validators' => array(array('Extension', false, 'csv'), array('Size', false, $config['uploads']['maxfilesize'])))); $this->submit(); $this->cancel(); }
/** * @return void */ public function baseInit() { $dictionary = new Base_Dictionary(); $WsServiceSetModel = new WsServiceSet(); $WsServiceSetArray = $WsServiceSetModel->fetchAll(array('ghost = false', 'status = ' . Logic_Ws_ServiceSet_ServiceSet::STATE_ACTIVE))->toArray(); foreach ($WsServiceSetArray as $set) { $WsServiceSets[$set['id']] = $set['name'] . ' (' . $set['hash'] . ')'; } $this->addElement('select', 'name', array('label' => 'Nazwa wysyłki', 'MultiOptions' => $this->addClearStart($WsServiceSets))); $this->datee(false, 'date_for', 'Data od:', false); $this->datee(false, 'date_to', 'Data do:', false); $this->date_for->class = $this->date_to->class = 'datepicker-present'; $this->addElement('text', 'author_name', array('label' => 'Osoba wczytująca plik')); $this->search(); $this->cancel(false, 'cancel', 'Clear'); }
/** * Pobranie danych do wysyłki pakietu z uwzględnieniem ustawień zawartych w ServiceSet * @param integer $wsServiceSetId * @param Row_WsPackageData $wsPackageData * @return array */ public static function getData($wsServiceSetId, Zend_Db_Table_Row &$wsPackageData) { $data = array(); $wsServiceSetModel = new WsServiceSet(); $wsServiceSetRow = $wsServiceSetModel->findOne($wsServiceSetId); $data['id'] = $wsPackageData->id; switch ($wsServiceSetRow->file_type) { case self::TYPE_CONST: $data['text'] = $wsServiceSetRow->message; $data['dest'] = array_fill_keys(array_keys(Zend_Json::decode($wsPackageData->tags)), ''); break; case self::TYPE_ANY: case self::TYPE_VAR: $data['dest'] = Zend_Json::decode($wsPackageData->tags); break; } $data['type'] = $wsServiceSetRow->file_type; return $data; }
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; }
/** * Ładowanie danych do pakietu * @param type $limit */ public function loadPackage($package) { $config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/application.ini', APPLICATION_ENV); $updloadDir = $config->uploads->destination; if (false === is_readable($fileName = $updloadDir . DIRECTORY_SEPARATOR . $package['file_name']) || false === is_file($fileName)) { throw new Exception("File for packageId = " . $package['id'] . " does not exists or is not readable"); } $serviceSet = new WsServiceSet(); $serviceSetRow = $serviceSet->findOne($package['ws_service_set_id']); $fileHandler = fopen($fileName, 'r'); $dataToSave = array(); $errors = array(); $this->_getDataFromFileByConfig($fileHandler, $serviceSetRow->getDelimiter(), $serviceSetRow->file_type, $dataToSave, $serviceSetRow->message, $errors); $packageDataModel = new WsPackageData(); $packageModel = new WsPackage(); if (false === empty($errors)) { $this->packageError($package['id'], $errors); } Base_Model_Table::getDefaultAdapter()->beginTransaction(); try { foreach ($dataToSave as &$chunk) { $packageDataModel->createRow(array('ws_package_id' => $package['id'], 'tags' => Zend_Json::encode($chunk), 'id_status' => WsPackageStatus::STATUS_READY))->save(); } Base_Model_Table::getDefaultAdapter()->commit(); } catch (Exception $exc) { Base_Model_Table::getDefaultAdapter()->rollBack(); throw new Logic_Exception("Cannot save package data! Error: " . $exc->getMessage(), null, $exc); } fclose($fileHandler); }