public function approve(WorkflowProgress $wp) { if ($this->canApproveWorkflowProgressObject($wp)) { $req = $wp->getWorkflowRequestObject(); $bdw = new BasicWorkflowProgressData($wp); $u = new User(); $bdw->markCompleted($u); $ux = UserInfo::getByID($bdw->getUserCompletedID()); $message = t("On %s, user %s approved the following request: \n\n---\n%s\n---\n\n", Loader::helper('date')->formatDateTime($bdw->getDateCompleted(), true, false), $ux->getUserName(), $req->getWorkflowRequestDescriptionObject()->getEmailDescription()); $this->notify($wp, $message, 'notify_on_basic_workflow_approve'); $wpr = $req->runTask('approve', $wp); $wp->markCompleted(); $hist = new BasicWorkflowHistoryEntry(); $hist->setAction('approve'); $hist->setRequesterUserID($u->getUserID()); $wp->addWorkflowProgressHistoryObject($hist); $bdw = new BasicWorkflowProgressData($wp); $bdw->delete(); return $wpr; } }