Exemple #1
0
 private function loadNewDoc($num = 3)
 {
     $uid = Yii::app()->user->uid;
     $allDeptId = Yii::app()->user->alldeptid . "";
     $allPosId = Yii::app()->user->allposid . "";
     $condition = " ( ((deptid='alldept' OR FIND_IN_SET('{$allDeptId}',deptid) OR FIND_IN_SET('{$allPosId}',positionid) OR FIND_IN_SET('{$uid}',uid)) OR (deptid='' AND positionid='' AND uid='') OR (author='{$uid}') OR (approver='{$uid}')) ) AND `status`='1'";
     $criteria = array("select" => "docid,subject,author,addtime", "condition" => $condition, "order" => "`istop` DESC, `addtime` DESC", "offset" => 0);
     $docs = Officialdoc::model()->fetchAll($criteria);
     $unSign = array();
     $signed = array();
     if (!empty($docs)) {
         foreach ($docs as &$doc) {
             $doc["author"] = User::model()->fetchRealNameByUid($doc["author"]);
             $doc["sign"] = OfficialdocReader::model()->fetchByAttributes(array("docid" => $doc["docid"], "uid" => $uid));
             $doc["isSign"] = empty($doc["sign"]) ? 0 : $doc["sign"]["issign"];
             if ($doc["isSign"] == 0) {
                 $unSign[] = $doc;
             } elseif ($doc["isSign"] == 1) {
                 $signed[] = $doc;
             }
         }
         $docs = array_merge($unSign, $signed);
     }
     if ($num < count($docs)) {
         $docs = array_slice($docs, 0, $num);
     }
     return $docs;
 }
 public function delete($catid)
 {
     $clear = false;
     $ids = $this->fetchAllSubId($catid);
     $idStr = implode(",", array_unique(explode(",", trim($ids, ","))));
     if (empty($idStr)) {
         $idStr = $catid;
     } else {
         $idStr .= "," . $catid;
     }
     $count = Officialdoc::model()->count("catid IN ({$idStr})");
     if ($count) {
         return -1;
     }
     if (!is_null($this->_related)) {
         $count = $this->_related->count("`{$this->index}` IN ({$idStr})");
         !$count && ($clear = true);
     } else {
         $clear = true;
     }
     if ($clear) {
         $status = $this->_category->deleteAll("FIND_IN_SET({$this->index},'{$idStr}')");
         $this->afterDelete();
         return $status;
     } else {
         return false;
     }
 }
Exemple #3
0
 public function __construct($docid)
 {
     $officialDoc = Officialdoc::model()->fetchByPk($docid);
     if (!empty($officialDoc)) {
         $this->attributes = $officialDoc;
         $this->attributes["issign"] = OfficialdocReader::model()->fetchSignByDocid($docid, Ibos::app()->user->uid);
     }
 }
 protected function getNewestVerByDocid($docid)
 {
     $doc = Officialdoc::model()->fetchByPk($docid);
     if (!empty($doc)) {
         return $doc["version"];
     } else {
         return 1;
     }
 }
Exemple #5
0
 public function actionShow()
 {
     $uid = Ibos::app()->user->uid;
     $docid = EnvUtil::getRequest("id");
     $version = EnvUtil::getRequest("version");
     if (empty($docid)) {
         $this->ajaxReturn("", "JSONP");
     }
     $officialDocEntity = new ICOfficialdoc($docid);
     $officialDoc = $officialDocEntity->getAttributes();
     if ($version) {
         $versionData = OfficialdocVersion::model()->fetchByAttributes(array("docid" => $docid, "version" => $version));
         $officialDoc = array_merge($officialDoc, $versionData);
     }
     if (!empty($officialDoc)) {
         if (!OfficialdocUtil::checkReadScope($uid, $officialDoc)) {
             $this->error(Ibos::lang("You do not have permission to read the officialdoc"), $this->createUrl("default/index"));
         }
         $data = ICOfficialdoc::getShowData($officialDoc);
         OfficialdocReader::model()->addReader($docid, $uid);
         Officialdoc::model()->updateClickCount($docid, $data["clickcount"]);
         $page = EnvUtil::getRequest("page");
         $criteria = new CDbCriteria();
         $pages = new CPagination(OfficialdocUtil::getCharacterLength($data["content"]));
         $pages->pageSize = 2000;
         $pages->applyLimit($criteria);
         $tmpContent = OfficialdocUtil::subHtml($data["content"], $pages->getCurrentPage() * $pages->getPageSize(), ($pages->getCurrentPage() + 1) * $pages->getPageSize());
         $data["content"] = $tmpContent;
         if (!empty($page) && $page != 1) {
             $data["content"] = "<div><div style=\"border-bottom:4px solid #e26f50;margin-top:60px;\"></div><div style=\"border-top:1px solid #e26f50;margin-top:4px;\"><div><p style=\"text-align:center;\"></p><div id=\"original-content\" style=\"min-height:400px;font:16px/2 fangsong,simsun;color:#666;\"><table cellspacing=\"0\" cellpadding=\"0\" width=\"95%\" align=\"center\"><tbody><tr><td class=\"p1\"><span><p>" . $tmpContent . "</p>";
             $data["content"] = OfficialdocUtil::subHtml($data["content"], 0, $pages->pageSize * 2);
         }
         $params = array("data" => $data, "pages" => $pages, "dashboardConfig" => Yii::app()->setting->get("setting/docconfig"));
         if ($data["rcid"]) {
             $params["rcType"] = RcType::model()->fetchByPk($data["rcid"]);
         }
     } else {
         $params = "";
     }
     $this->ajaxReturn($params, "JSONP");
 }
Exemple #6
0
 public static function joinListCondition($type, $docidArr, $catid = 0, $condition = "")
 {
     $typeWhere = "";
     $uid = Ibos::app()->user->uid;
     if ($type == "nosign" || $type == "sign") {
         $docidsStr = implode(",", $docidArr);
         $docids = empty($docidsStr) ? "-1" : $docidsStr;
         $flag = $type == "nosign" ? "NOT" : "";
         $typeWhere = " docid " . $flag . " IN({$docids}) AND status=1";
     } elseif ($type == "notallow") {
         $docids = Officialdoc::model()->fetchUnApprovalDocIds($catid, $uid);
         $docidStr = implode(",", $docids);
         $typeWhere = "FIND_IN_SET(`docid`, '{$docidStr}')";
     } elseif ($type == "draft") {
         $typeWhere = "status='3' AND author='{$uid}'";
     } else {
         $typeWhere = "status ='1' AND approver!=0";
     }
     $condition = !empty($condition) ? $condition .= " AND " . $typeWhere : $typeWhere;
     $allCcDeptId = Ibos::app()->user->alldeptid . "";
     $allDeptId = Ibos::app()->user->alldeptid . "";
     $allDeptId .= "," . Ibos::app()->user->allupdeptid . "";
     $allPosId = Ibos::app()->user->allposid . "";
     $deptCondition = "";
     $deptIdArr = explode(",", trim($allDeptId, ","));
     if (0 < count($deptIdArr)) {
         foreach ($deptIdArr as $deptId) {
             $deptCondition .= "FIND_IN_SET('{$deptId}',deptid) OR ";
         }
         $deptCondition = substr($deptCondition, 0, -4);
     } else {
         $deptCondition = "FIND_IN_SET('',deptid)";
     }
     $scopeCondition = " ( ((deptid='alldept' OR {$deptCondition} OR FIND_IN_SET('{$allCcDeptId}',ccdeptid) OR FIND_IN_SET('{$allPosId}',positionid) OR FIND_IN_SET('{$allPosId}',ccpositionid) OR FIND_IN_SET('{$uid}',uid ) OR FIND_IN_SET('{$uid}',ccuid )) OR (deptid='' AND positionid='' AND uid='') OR (author='{$uid}') OR (approver='{$uid}')) )";
     $condition .= " AND " . $scopeCondition;
     if (!empty($catid)) {
         $condition .= " AND catid IN ({$catid})";
     }
     return $condition;
 }
Exemple #7
0
 private function getForwardDoc()
 {
     $docId = intval(EnvUtil::getRequest("relatedid"));
     $doc = Officialdoc::model()->fetchByPk($docId);
     if (empty($doc)) {
         $this->error(Ibos::lang("转发的公文不存在或者已删掉"), Ibos::app()->urlManager->createUrl("officialdoc/officialdoc/index"));
     }
     return $doc;
 }
 private function highLight()
 {
     if (Ibos::app()->request->isAjaxRequest) {
         $docids = trim(EnvUtil::getRequest("docids"), ",");
         $highLight = array();
         $highLight["endTime"] = EnvUtil::getRequest("highlightEndTime");
         $highLight["bold"] = EnvUtil::getRequest("bold");
         $highLight["color"] = EnvUtil::getRequest("color");
         $highLight["italic"] = EnvUtil::getRequest("italic");
         $highLight["underline"] = EnvUtil::getRequest("underline");
         $data = OfficialdocUtil::processHighLightRequestData($highLight);
         if (empty($data["highlightendtime"])) {
             Officialdoc::model()->updateHighlightStatus($docids, 0, "", "");
             $this->ajaxReturn(array("isSuccess" => true, "info" => Ibos::lang("Unhighlighting success")));
         } else {
             Officialdoc::model()->updateHighlightStatus($docids, 1, $data["highlightstyle"], $data["highlightendtime"]);
             $this->ajaxReturn(array("isSuccess" => true, "info" => Ibos::lang("Highlight succeed")));
         }
     }
 }