public function addTranslation($itemGuid, $relatedGuid) { $tblRelatedItem = new Kutu_Core_Orm_Table_RelatedItem(); //check apakah relatedGuid adalah seorang parent atau child $rowsetRelatedItem = $tblRelatedItem->fetchAll("relatedGuid='{$relatedGuid}' AND relateAs='RELATED_TRANSLATION'"); if (count($rowsetRelatedItem)) { //do nothing } $rowsetRelatedItem = $tblRelatedItem->fetchAll("itemGuid='{$relatedGuid}' AND relateAs='RELATED_TRANSLATION'"); if (count($rowsetRelatedItem)) { $relatedGuid = $rowsetRelatedItem->current()->relatedGuid; } //check if $itemGuid adalah parent atau child $rowsetRelatedItem = $tblRelatedItem->fetchAll("relatedGuid='{$itemGuid}' AND relateAs='RELATED_TRANSLATION'"); if (count($rowsetRelatedItem)) { //check apakah sudah ada $rs1 = $tblRelatedItem->find($this->itemGuid, $relatedGuid, "RELATED_TRANSLATION"); if (count($rs1)) { } else { $tblCatalog = new Kutu_Core_Orm_Table_Catalog(); $rowset = $tblCatalog->find($itemGuid); if (count($rowset)) { $row = $rowset->current(); $row->relateTo($relatedGuid, "RELATED_TRANSLATION"); } } //get all children and set its current relatedGuid to the new relatedGuid foreach ($rowsetRelatedItem as $row) { $row->relatedGuid = $relatedGuid; $row->save(); } } else { //check apakah itemGuid adalah child $rs1 = $tblRelatedItem->fetchAll("itemGuid='{$itemGuid}' AND relateAs='RELATED_TRANSLATION'"); if (count($rs1)) { //update bapaknya dan anak dari bapaknya $tblCatalog = new Kutu_Core_Orm_Table_Catalog(); $rowset = $tblCatalog->find($rs1->current()->relatedGuid); if (count($rowset)) { $row = $rowset->current(); $row->relateTo($relatedGuid, "RELATED_TRANSLATION"); } $bapak = $rs1->current()->relatedGuid; $rs2 = $tblRelatedItem->fetchAll("relatedGuid='{$bapak}' AND relateAs='RELATED_TRANSLATION'"); if (count($rs2)) { foreach ($rs2 as $row) { $row->relatedGuid = $relatedGuid; $row->save(); } } } } /*$rowsetRelatedItem = $tblRelatedItem->find($this->itemGuid, $relatedGuid, "RELATED_TRANSLATION"); if(count($rowsetRelatedItem)) { } else { $rowsetRelatedItem = $tblRelatedItem->find($relatedGuid, $this->itemGuid, "RELATED_TRANSLATION"); if(count($rowsetRelatedItem)) { } else { $tblCatalog = new Kutu_Core_Orm_Table_Catalog(); $rowset = $tblCatalog->find($itemGuid); if(count($rowset)) { $row = $rowset->current(); $row->relateTo($relatedGuid, "RELATED_TRANSLATION"); } } }*/ }
public function relateTo($relatedGuid, $as = 'RELATED_ITEM', $valRelation = 0) { $tblRelatedItem = new Kutu_Core_Orm_Table_RelatedItem(); if (empty($this->guid)) { throw new Zend_Exception('Can not relate to empty GUID'); } if (empty($relatedGuid)) { throw new Zend_Exception('Can not relate to empty related GUID'); } $rowsetRelatedItem = $tblRelatedItem->find($this->guid, $relatedGuid, $as); if (count($rowsetRelatedItem) > 0) { $row = $rowsetRelatedItem->current(); $row->valueIntRelation = $valRelation; } else { $row = $tblRelatedItem->createNew(); $row->itemGuid = $this->guid; $row->relatedGuid = $relatedGuid; $row->relateAs = $as; $row->valueIntRelation = $valRelation; } $row->save(); }
private function _createDocs($sourceCatalogId, $guidPrefix = 'lgsimpfl') { // get all related documents $tblCatalog = new Kutu_Core_Orm_Table_Catalog(); $tblCatalogAttribute = new Kutu_Core_Orm_Table_CatalogAttribute(); $tblRelatedItem = new Kutu_Core_Orm_Table_RelatedItem(); $this->_dbSource->setFetchMode(Zend_Db::FETCH_OBJ); $rowsetDocItem = $this->_dbSource->fetchAll("SELECT * from tblDms_DocItem A \n\t\t\t\tWHERE A.CatalogID = {$sourceCatalogId}"); foreach ($rowsetDocItem as $rowDocItem) { $rowsetCatalog = $tblCatalog->find($guidPrefix . $rowDocItem->DocItemID); if (count($rowsetCatalog) == 0) { $rowCatalog = $tblCatalog->fetchNew(); $rowCatalog->guid = $guidPrefix . $rowDocItem->DocItemID; echo "KITI: " . $rowCatalog->guid; $sFileAsli = str_replace(array('_', '.'), '-', $rowDocItem->DocFileAsli); $rowCatalog->shortTitle = $sFileAsli; $rowCatalog->profileGuid = "kutu_doc"; $rowCatalog->createdBy = $rowDocItem->DocCreator; $rowCatalog->modifiedBy = $rowDocItem->DocModifier; $rowCatalog->createdDate = $rowDocItem->DocCreated; $rowCatalog->modifiedDate = $rowDocItem->DocModified; $rowCatalog->save(); $rowExp = $this->_dbSource->fetchRow("Select * from tblDms_Exp_Seq where DocItemID={$rowDocItem->DocItemID} AND DocumentID={$rowDocItem->CatalogID}"); // untuk catalogAttributenya tambahan agar isinya fixedTitle,dsb itu // fixedTitle $rowCatalogAttribute = $tblCatalogAttribute->fetchNew(); $rowCatalogAttribute->catalogGuid = $guidPrefix . $rowDocItem->DocItemID; $rowCatalogAttribute->attributeGuid = 'fixedTitle'; if (empty($rowExp->Friendlyname)) { $rowCatalogAttribute->value = $rowDocItem->DocFileAsli; } else { $rowCatalogAttribute->value = $rowExp->Friendlyname; } $rowCatalogAttribute->save(); // fixedKeywords $rowCatalogAttribute = $tblCatalogAttribute->fetchNew(); $rowCatalogAttribute->catalogGuid = $guidPrefix . $rowDocItem->DocItemID; $rowCatalogAttribute->attributeGuid = 'fixedKeywords'; $rowCatalogAttribute->value = ""; $rowCatalogAttribute->save(); // fixedDescription $rowCatalogAttribute = $tblCatalogAttribute->fetchNew(); $rowCatalogAttribute->catalogGuid = $guidPrefix . $rowDocItem->DocItemID; $rowCatalogAttribute->attributeGuid = 'fixedDescription'; $rowCatalogAttribute->value = ""; $rowCatalogAttribute->save(); // fixedLanguage $rowCatalogAttribute = $tblCatalogAttribute->fetchNew(); $rowCatalogAttribute->catalogGuid = $guidPrefix . $rowDocItem->DocItemID; $rowCatalogAttribute->attributeGuid = 'fixedLanguage'; $rowCatalogAttribute->value = "en"; $rowCatalogAttribute->save(); // docCategoryGuid $rowCatalogAttribute = $tblCatalogAttribute->fetchNew(); $rowCatalogAttribute->catalogGuid = $guidPrefix . $rowDocItem->DocItemID; $rowCatalogAttribute->attributeGuid = 'docCategoryGuid'; $rowCatalogAttribute->value = ""; $rowCatalogAttribute->save(); // docSystemName $rowCatalogAttribute = $tblCatalogAttribute->fetchNew(); $rowCatalogAttribute->catalogGuid = $guidPrefix . $rowDocItem->DocItemID; $rowCatalogAttribute->attributeGuid = 'docSystemName'; $rowCatalogAttribute->value = $rowDocItem->DocFileName; $rowCatalogAttribute->save(); // docOriginalName $rowCatalogAttribute = $tblCatalogAttribute->fetchNew(); $rowCatalogAttribute->catalogGuid = $guidPrefix . $rowDocItem->DocItemID; $rowCatalogAttribute->attributeGuid = 'docOriginalName'; $rowCatalogAttribute->value = $rowDocItem->DocFileAsli; $rowCatalogAttribute->save(); // docSize $rowCatalogAttribute = $tblCatalogAttribute->fetchNew(); $rowCatalogAttribute->catalogGuid = $guidPrefix . $rowDocItem->DocItemID; $rowCatalogAttribute->attributeGuid = 'docSize'; $rowCatalogAttribute->value = $rowDocItem->DocSize; $rowCatalogAttribute->save(); // docMimeType $rowCatalogAttribute = $tblCatalogAttribute->fetchNew(); $rowCatalogAttribute->catalogGuid = $guidPrefix . $rowDocItem->DocItemID; $rowCatalogAttribute->attributeGuid = 'docMimeType'; $rowCatalogAttribute->value = $rowDocItem->DocType; $rowCatalogAttribute->save(); } else { echo 'Data tidak disimpan'; } // related the file/document as RELATED_FILE $rowsetRelatedItem = $tblRelatedItem->find($guidPrefix . $rowDocItem->DocItemID, 'lgsimpdms' . $rowDocItem->CatalogID, "RELATED_FILE"); if (count($rowsetRelatedItem) == 0) { $rowRelation = $tblRelatedItem->createNew(); $rowRelation->itemGuid = $guidPrefix . $rowDocItem->DocItemID; $rowRelation->relatedGuid = 'lgsimpdms' . $rowDocItem->CatalogID; $rowRelation->relateAs = "RELATED_FILE"; if (isset($rowExp->Sequence)) { $rowRelation->valueIntRelation = $rowExp->Sequence; } $rowRelation->save(); //echo "<font color=blue>Record ke = ".$r." dari itemGuid = fl".$row->DocItemID." - ".$row->CatalogID." relasi file di-saved</font><br>"; } } }