Пример #1
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;
 }
Пример #2
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);
 }