Exemplo n.º 1
0
 /**
  * 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__);
 }