当前位置: 首页>>代码示例>>PHP>>正文


PHP Workflow::completeStage方法代码示例

本文整理汇总了PHP中Workflow::completeStage方法的典型用法代码示例。如果您正苦于以下问题:PHP Workflow::completeStage方法的具体用法?PHP Workflow::completeStage怎么用?PHP Workflow::completeStage使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Workflow的用法示例。


在下文中一共展示了Workflow::completeStage方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: execute

 public function execute(&$params)
 {
     $workflowId = $this->parseOption('workflowId', $params);
     $stageNumber = $this->parseOption('stageNumber', $params);
     $stageComment = $this->parseOption('stageComment', $params);
     $model = $params['model'];
     $type = lcfirst(X2Model::getModuleName(get_class($model)));
     $modelId = $model->id;
     $workflowStatus = Workflow::getWorkflowStatus($workflowId, $modelId, $type);
     $message = '';
     if (Workflow::validateAction('complete', $workflowStatus, $stageNumber, $stageComment, $message)) {
         list($started, $workflowStatus) = Workflow::completeStage($workflowId, $stageNumber, $model, $stageComment, false, $workflowStatus);
         assert($started);
         return array(true, Yii::t('studio', 'Stage "{stageName}" completed for {recordName}', array('{stageName}' => $workflowStatus['stages'][$stageNumber]['name'], '{recordName}' => $model->getLink())));
     } else {
         return array(false, $message);
     }
 }
开发者ID:dsyman2,项目名称:X2CRM,代码行数:18,代码来源:X2FlowWorkflowCompleteStage.php

示例2: actionCompleteStage

 public function actionCompleteStage($workflowId, $stageNumber, $modelId, $type, $comment = '')
 {
     $model = $this->validateParams($workflowId, $stageNumber, $modelId, $type);
     $workflowStatus = Workflow::getWorkflowStatus($workflowId, $modelId, $type);
     $message = '';
     if (Workflow::validateAction('complete', $workflowStatus, $stageNumber, $comment, $message)) {
         list($completed, $workflowStatus) = Workflow::completeStage($workflowId, $stageNumber, $model, $comment, true);
     }
     // $record=X2Model::model(ucfirst($type))->findByPk($modelId);
     // if($record->hasAttribute('lastActivity')){
     // $record->lastActivity=time();
     // $record->save();
     // }
     echo CJSON::encode(array('workflowStatus' => $workflowStatus, 'flashes' => array('error' => !empty($message) ? array($message) : array(), 'success' => empty($message) ? array(Yii::t('workflow', 'Stage completed')) : array())));
 }
开发者ID:shuvro35,项目名称:X2CRM,代码行数:15,代码来源:WorkflowController.php

示例3: moveFromStageAToStageB

 /**
  * Moves a record up or down a workflow. Assumes that stageA is started but not completed.
  * Intermediate stages and stageB can be in any state.
  * @param int $workflowId
  * @param int $stageA Start stage (indexed by 1) 
  * @param int $stageB End stage (indexed by 1) 
  * @param object $model model associated with workflow
  * @param array $comments comment strings indexed by workflow stage number
  * Precondition: $stageA !== $stageB
  * @return array first element is success, the second is an optional message
  */
 public static function moveFromStageAToStageB($workflowId, $stageA, $stageB, $model, $comments = array())
 {
     if ($stageA === $stageB && YII_DEBUG) {
         throw new CException('Precondition violation: $stageA === $stageB');
     }
     $modelId = $model->id;
     $type = lcfirst(X2Model::getModuleName(get_class($model)));
     $retVal = self::validateStageChange($workflowId, $stageA, $stageB, $modelId, $type, $comments);
     if (!$retVal[0]) {
         return $retVal;
     }
     // enact stage change
     if ($stageA < $stageB) {
         // complete first stage
         list($success, $status) = Workflow::completeStage($workflowId, $stageA, $model, isset($comments[$stageA]) ? $comments[$stageA] : '', false);
         for ($i = $stageA + 1; $i < $stageB; ++$i) {
             // start and complete intermediate stages
             list($success, $status) = Workflow::startStage($workflowId, $i, $model, $status);
             list($success, $status) = Workflow::completeStage($workflowId, $i, $model, isset($comments[$i]) ? $comments[$i] : '', false, $status);
         }
         list($success, $status) = Workflow::startStage($workflowId, $stageB, $model, $status);
         // uncomplete a completed final stage
         list($success, $status) = Workflow::revertStage($workflowId, $stageB, $model, false, $status);
     } else {
         // $stageA > $stageB
         // unstart first stage
         list($success, $status) = Workflow::revertStage($workflowId, $stageA, $model);
         for ($i = $stageA - 1; $i > $stageB; --$i) {
             // uncomplete and unstart intermediate stages
             list($success, $status) = Workflow::revertStage($workflowId, $i, $model, $status);
             list($success, $status) = Workflow::revertStage($workflowId, $i, $model, $status);
         }
         // uncomplete a completed final stage
         list($success, $status) = Workflow::revertStage($workflowId, $stageB, $model, false, $status);
         list($success, $status) = Workflow::startStage($workflowId, $stageB, $model, false, $status);
     }
     return array(true);
 }
开发者ID:keyeMyria,项目名称:CRM,代码行数:49,代码来源:Workflow.php

示例4: testStartStage

 public function testStartStage()
 {
     $workflow = $this->workflows('workflow2');
     $model = $this->contacts('contact935');
     list($success, $status) = Workflow::startStage($workflow->id, 5, $model);
     // couldn't start a stage which requires previous, uncompleted stage
     $this->assertFalse($success);
     // complete stage 4 and disable auto start so that stage 5 doesn't get started
     list($success, $status) = Workflow::completeStage($workflow->id, 4, $model, 'test comment', false);
     list($success, $status) = Workflow::startStage($workflow->id, 5, $model);
     // should have been able to start stage 5 now that 4 is completed
     $this->assertTrue($success);
 }
开发者ID:tymiles003,项目名称:X2CRM,代码行数:13,代码来源:WorkflowTest.php


注:本文中的Workflow::completeStage方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。