/** * Is the schema ready? * * @return bool */ public function hasSchema() { return $this->db->isTableExists($this->tableName); }
protected function migrateCrmData() { if ($this->isStepFinished(__METHOD__)) { return; } //CCrmActivityStorageType::Webdav 2 //CCrmActivityStorageType::Disk 3 if (!$this->connection->isTableExists('b_crm_act')) { $this->setStepFinished(__METHOD__); return; } if ($this->isMysql) { $sql = "\n\t\t\t\tUPDATE b_crm_act_elem crm\n\t\t\t\tINNER JOIN b_disk_object obj ON obj.WEBDAV_ELEMENT_ID = crm.ELEMENT_ID and crm.STORAGE_TYPE_ID = 2\n\t\t\t\tSET crm.ELEMENT_ID = obj.ID, crm.STORAGE_TYPE_ID = 3\n\t\t\t"; } elseif ($this->isOracle || $this->isMssql) { $sql = "\n\t\t\t\tUPDATE b_crm_act_elem\n\t\t\t\tSET STORAGE_TYPE_ID = 3,\n\t\t\t\tELEMENT_ID = (SELECT obj.ID FROM b_crm_act_elem crm\n\t\t\t\t\t\tINNER JOIN b_disk_object obj ON obj.WEBDAV_ELEMENT_ID = crm.ELEMENT_ID and crm.STORAGE_TYPE_ID = 2\n\t\t\t\t\t\tWHERE b_crm_act_elem.ACTIVITY_ID = crm.ACTIVITY_ID AND b_crm_act_elem.STORAGE_TYPE_ID = crm.STORAGE_TYPE_ID AND b_crm_act_elem.ELEMENT_ID = crm.ELEMENT_ID\n\t\t\t\t)\n\t\t\t\tWHERE EXISTS (SELECT obj.ID FROM b_crm_act_elem crm\n\t\t\t\t\t\tINNER JOIN b_disk_object obj ON obj.WEBDAV_ELEMENT_ID = crm.ELEMENT_ID and crm.STORAGE_TYPE_ID = 2\n\t\t\t\t\t\tWHERE b_crm_act_elem.ACTIVITY_ID = crm.ACTIVITY_ID AND b_crm_act_elem.STORAGE_TYPE_ID = crm.STORAGE_TYPE_ID AND b_crm_act_elem.ELEMENT_ID = crm.ELEMENT_ID\n\t\t\t\t)\n\t\t\t"; } $this->connection->queryExecute($sql); if ($this->isMssql) { $this->connection->queryExecute("\n\t\t\t\tUPDATE b_crm_act\n\t\t SET STORAGE_ELEMENT_IDS = CAST(ID as VARCHAR(255)), STORAGE_TYPE_ID = 3 WHERE STORAGE_TYPE_ID = 2\n\t\t\t"); } else { $this->connection->queryExecute("\n\t\t\t\tUPDATE b_crm_act\n\t\t SET STORAGE_ELEMENT_IDS = ID, STORAGE_TYPE_ID = 3 WHERE STORAGE_TYPE_ID = 2\n\t\t\t"); } if ($this->isMysql) { $sql = "\n\t\t\t\tUPDATE b_crm_quote_elem crm\n\t\t\t\tINNER JOIN b_disk_object obj ON obj.WEBDAV_ELEMENT_ID = crm.ELEMENT_ID and crm.STORAGE_TYPE_ID = 2\n\t\t\t\tSET crm.ELEMENT_ID = obj.ID, crm.STORAGE_TYPE_ID = 3\n\t\t\t"; } elseif ($this->isOracle || $this->isMssql) { $sql = "\n\t\t\t\tUPDATE b_crm_quote_elem\n\t\t\t\tSET STORAGE_TYPE_ID = 3,\n\t\t\t\tELEMENT_ID = (SELECT obj.ID FROM b_crm_quote_elem crm\n\t\t\t\t\t\tINNER JOIN b_disk_object obj ON obj.WEBDAV_ELEMENT_ID = crm.ELEMENT_ID and crm.STORAGE_TYPE_ID = 2\n\t\t\t\t\t\tWHERE b_crm_quote_elem.QUOTE_ID = crm.QUOTE_ID AND b_crm_quote_elem.STORAGE_TYPE_ID = crm.STORAGE_TYPE_ID AND b_crm_quote_elem.ELEMENT_ID = crm.ELEMENT_ID\n\t\t\t\t)\n\n\t\t\t\tWHERE EXISTS (SELECT obj.ID FROM b_crm_quote_elem crm\n\t\t\t\t\t\tINNER JOIN b_disk_object obj ON obj.WEBDAV_ELEMENT_ID = crm.ELEMENT_ID and crm.STORAGE_TYPE_ID = 2\n\t\t\t\t\t\tWHERE b_crm_quote_elem.QUOTE_ID = crm.QUOTE_ID AND b_crm_quote_elem.STORAGE_TYPE_ID = crm.STORAGE_TYPE_ID AND b_crm_quote_elem.ELEMENT_ID = crm.ELEMENT_ID\n\t\t\t\t)\n\n\t\t\t\t"; } $this->connection->queryExecute($sql); if ($this->isMssql) { $this->connection->queryExecute("\n\t\t\t\tUPDATE b_crm_quote\n\t\t SET STORAGE_ELEMENT_IDS = CAST(ID as VARCHAR(255)), STORAGE_TYPE_ID = 3 WHERE STORAGE_TYPE_ID = 2\n\t\t\t"); } else { $this->connection->queryExecute("\n\t\t\t\tUPDATE b_crm_quote\n\t\t\t\tSET STORAGE_ELEMENT_IDS = ID, STORAGE_TYPE_ID = 3 WHERE STORAGE_TYPE_ID = 2\n\t\t\t"); } $this->setStepFinished(__METHOD__); }