/** * 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; }