예제 #1
0
 private function save()
 {
     $uid = Ibos::app()->user->uid;
     $data = $_POST;
     $publicScope = OfficialdocUtil::handleSelectBoxData(StringUtil::getId($data["publishScope"], true));
     $data["uid"] = $publicScope["uid"];
     $data["positionid"] = $publicScope["positionid"];
     $data["deptid"] = $publicScope["deptid"];
     $ccScope = OfficialdocUtil::handleSelectBoxData(StringUtil::getId($data["ccScope"], true), false);
     $data["ccuid"] = $ccScope["uid"];
     $data["ccpositionid"] = $ccScope["positionid"];
     $data["ccdeptid"] = $ccScope["deptid"];
     $data["author"] = $uid;
     $data["docno"] = $_POST["docNo"];
     $data["approver"] = $uid;
     $data["addtime"] = TIMESTAMP;
     $data["uptime"] = TIMESTAMP;
     if ($data["status"] == 2) {
         $catid = intval($data["catid"]);
         $category = OfficialdocCategory::model()->fetchByPk($catid);
         $data["status"] = empty($category["aid"]) ? 1 : 2;
         $data["approver"] = !empty($category["aid"]) ? 0 : $uid;
     }
     $attachmentid = trim($_POST["attachmentid"], ",");
     if (!empty($attachmentid)) {
         AttachUtil::updateAttach($attachmentid);
     }
     $docId = Officialdoc::model()->add($data, true);
     $user = User::model()->fetchByUid($uid);
     $officialdoc = Officialdoc::model()->fetchByPk($docId);
     $categoryName = OfficialdocCategory::model()->fetchCateNameByCatid($officialdoc["catid"]);
     if ($data["status"] == "1") {
         $publishScope = array("deptid" => $officialdoc["deptid"], "positionid" => $officialdoc["positionid"], "uid" => $officialdoc["uid"]);
         $uidArr = OfficialdocUtil::getScopeUidArr($publishScope);
         $config = array("{sender}" => $user["realname"], "{category}" => $categoryName, "{subject}" => $officialdoc["subject"], "{content}" => $this->renderPartial("remindcontent", array("doc" => $officialdoc, "author" => $user["realname"]), true), "{url}" => Ibos::app()->urlManager->createUrl("officialdoc/officialdoc/show", array("docid" => $docId)));
         if (0 < count($uidArr)) {
             Notify::model()->sendNotify($uidArr, "officialdoc_message", $config, $uid);
         }
         $wbconf = WbCommonUtil::getSetting(true);
         if (isset($wbconf["wbmovement"]["article"]) && $wbconf["wbmovement"]["article"] == 1) {
             $publishScope = array("deptid" => $officialdoc["deptid"], "positionid" => $officialdoc["positionid"], "uid" => $officialdoc["uid"]);
             $data = array("title" => Ibos::lang("Feed title", "", array("{subject}" => $officialdoc["subject"], "{url}" => Ibos::app()->urlManager->createUrl("officialdoc/officialdoc/show", array("docid" => $docId)))), "body" => $officialdoc["subject"], "actdesc" => Ibos::lang("Post officialdoc"), "userid" => $publishScope["uid"], "deptid" => $publishScope["deptid"], "positionid" => $publishScope["positionid"]);
             WbfeedUtil::pushFeed($uid, "officialdoc", "officialdoc", $docId, $data);
         }
         UserUtil::updateCreditByAction("addofficialdoc", $uid);
     } elseif ($data["status"] == "2") {
         $this->SendPending($officialdoc, $uid);
     }
     $this->success(Ibos::lang("Save succeed", "message"), $this->createUrl("officialdoc/index"));
 }