Esempio n. 1
0
 /**
  * @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');
 }
Esempio n. 2
0
 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);
 }
Esempio n. 3
0
 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();
 }
Esempio n. 4
0
 /**
  * @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');
 }
Esempio n. 5
0
 /**
  * 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;
 }
Esempio n. 6
0
 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;
 }
Esempio n. 7
0
 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());
     }
 }
Esempio n. 8
0
 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();
     }
 }
Esempio n. 9
0
 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;
 }
Esempio n. 10
0
 /**
  * Ł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);
 }