Пример #1
0
 /**
  * Insert pattern
  * @param PatternDto $pattern
  * @return number
  */
 public function insert($pattern)
 {
     $patternId = -1;
     try {
         $this->dp->getDB()->beginTransaction();
         // Change tag of pattern (all column name)
         $tag = '';
         foreach ($pattern->header as $key => $column) {
             $tag .= $column->header . ' ';
         }
         // Get account id
         $accDao = new AccountDao($this->dp);
         $acc = $accDao->getByFbId($pattern->info->accountid);
         $pattern->info->accountid = $acc->id;
         // Insert pattern;
         $pattern->info->tag = $tag;
         $patternId = $this->patternDao->insert($pattern->info);
         $columnIdArr = array();
         foreach ($pattern->header as $key => $column) {
             $column->patternid = $patternId;
             $columnId = $this->patternHeaderDao->insert($column);
             $columnIdArr[] = $columnId;
         }
         for ($i = 0; $i < count($pattern->data); $i++) {
             $detail = $pattern->data[$i];
             $detail->patternid = $patternId;
             $detail->columnid = $columnIdArr[$i % $pattern->info->columnsize];
             $this->patternDetailDao->insert($detail);
         }
         $this->dp->getDB()->commit();
     } catch (Exception $ex) {
         // Something went wrong rollback!
         $this->dp->getDB()->rollBack();
         Plog::log($ex->getMessage());
     }
     return $patternId;
 }