public function createTemplate($config)
 {
     $this->con->beginTransaction();
     try {
         $type = $config["type"];
         $method = "default" . ucfirst($type) . "Template";
         $default = $this->{$method}();
         $name = isset($config["name"]) ? $config["name"] : $default["name"];
         $fields = isset($config["fields"]) ? $config["fields"] : $default["fields"];
         $doSetDefault = isset($config['setDefault']) ? $config['setDefault'] : false;
         $template = new CcPlayoutHistoryTemplate();
         $template->setDbName($name);
         $template->setDbType($type);
         foreach ($fields as $index => $field) {
             $isMd = $field["isFileMd"] == 'true' ? true : false;
             $templateField = new CcPlayoutHistoryTemplateField();
             $templateField->setDbName($field["name"]);
             $templateField->setDbLabel($field["label"]);
             $templateField->setDbType($field["type"]);
             $templateField->setDbIsFileMD($isMd);
             $templateField->setDbPosition($index);
             $template->addCcPlayoutHistoryTemplateField($templateField);
         }
         $template->save($this->con);
         if ($doSetDefault) {
             $this->setConfiguredItemTemplate($template->getDbid());
         }
         $this->con->commit();
         return $template->getDbid();
     } catch (Exception $e) {
         $this->con->rollback();
         throw $e;
     }
 }
 /**
  * Declares an association between this object and a CcPlayoutHistoryTemplate object.
  *
  * @param      CcPlayoutHistoryTemplate $v
  * @return     CcPlayoutHistoryTemplateField The current object (for fluent API support)
  * @throws     PropelException
  */
 public function setCcPlayoutHistoryTemplate(CcPlayoutHistoryTemplate $v = null)
 {
     if ($v === null) {
         $this->setDbTemplateId(NULL);
     } else {
         $this->setDbTemplateId($v->getDbId());
     }
     $this->aCcPlayoutHistoryTemplate = $v;
     // Add binding for other direction of this n:n relationship.
     // If this object has already been added to the CcPlayoutHistoryTemplate object, it will not be re-added.
     if ($v !== null) {
         $v->addCcPlayoutHistoryTemplateField($this);
     }
     return $this;
 }