From 5722d28e7786128f08f6a9042f24707452d6daaf Mon Sep 17 00:00:00 2001 From: wangyidong Date: Mon, 7 Mar 2016 11:15:58 +0800 Subject: [PATCH] * fix bug #785. --- module/task/lang/en.php | 1 + module/task/lang/zh-cn.php | 1 + module/task/model.php | 36 +++++++++++++++++++----------------- 3 files changed, 21 insertions(+), 17 deletions(-) diff --git a/module/task/lang/en.php b/module/task/lang/en.php index a3833060b8..0a8aa49f18 100644 --- a/module/task/lang/en.php +++ b/module/task/lang/en.php @@ -159,6 +159,7 @@ $lang->task->error->consumedThisTime = 'Please input "hours"'; $lang->task->error->left = 'Please input "left"'; $lang->task->error->work = '"Comment" must be less than 255 characters'; $lang->task->error->skipClose = 'The status of Tasks : %s are not finished or canceled, can not close.'; +$lang->task->error->consumed = 'The consumed of task %s is less than zero, ignore it.'; /* Report. */ $lang->task->report = new stdclass(); diff --git a/module/task/lang/zh-cn.php b/module/task/lang/zh-cn.php index e52ee21a24..8d80580c1e 100644 --- a/module/task/lang/zh-cn.php +++ b/module/task/lang/zh-cn.php @@ -159,6 +159,7 @@ $lang->task->error->consumedThisTime = '请填写"工时"'; $lang->task->error->left = '请填写"剩余"'; $lang->task->error->work = '"备注"必须小于255个字符'; $lang->task->error->skipClose = '任务:%s 不是“已完成”或“已取消”状态,不能关闭!'; +$lang->task->error->consumed = '任务:%s总消耗小于0,忽略该任务工时的改动'; /* 统计报表。*/ $lang->task->report = new stdclass(); diff --git a/module/task/model.php b/module/task/model.php index 32871919f2..3ac3d67f36 100644 --- a/module/task/model.php +++ b/module/task/model.php @@ -228,7 +228,7 @@ class taskModel extends model { die(js::error($this->lang->task->error->consumedSmall)); } - else if($task->consumed != $oldTask->consumed or $task->left != $oldTask->left) + elseif($task->consumed != $oldTask->consumed or $task->left != $oldTask->left) { $estimate = new stdClass(); $estimate->consumed = $task->consumed - $oldTask->consumed; @@ -236,10 +236,7 @@ class taskModel extends model $estimate->task = $taskID; $estimate->account = $this->app->user->account; $estimate->date = helper::now(); - - $this->dao->insert(TABLE_TASKESTIMATE)->data($estimate) - ->autoCheck() - ->exec(); + $this->addTaskEstimate($estimate); } $task = $this->loadModel('file')->processEditor($task, $this->config->task->editor->edit['id']); @@ -300,7 +297,7 @@ class taskModel extends model $task->estimate = $data->estimates[$taskID]; $task->left = $data->lefts[$taskID]; $task->finishedBy = $data->finishedBys[$taskID]; - $task->canceledBy = $data->canceledBys[$taskID]; + $task->canceledBy = $oldTask->canceledBy; $task->closedBy = $data->closedBys[$taskID]; $task->closedReason = $data->closedReasons[$taskID]; $task->finishedDate = $oldTask->finishedDate; @@ -316,15 +313,22 @@ class taskModel extends model if($data->consumeds[$taskID]) { - $record = new stdclass(); - $record->account = $this->app->user->account; - $record->task = $taskID; - $record->date = $today; - $record->left = $task->left; - $record->consumed = $data->consumeds[$taskID]; - $this->dao->insert(TABLE_TASKESTIMATE)->data($record)->autoCheck()->exec(); + if(($oldTask->consumed + $data->consumeds[$taskID]) < 0) + { + echo js::alert(sprintf($this->lang->task->error->consumed, $taskID)); + } + else + { + $record = new stdclass(); + $record->account = $this->app->user->account; + $record->task = $taskID; + $record->date = $today; + $record->left = $task->left; + $record->consumed = $data->consumeds[$taskID]; + $this->addTaskEstimate($record); - $task->consumed = $oldTask->consumed + $record->consumed; + $task->consumed = $oldTask->consumed + $record->consumed; + } } switch($task->status) @@ -513,9 +517,7 @@ class taskModel extends model $consumed += $estimate->consumed; $left = $estimate->left; $work = $estimate->work; - $this->dao->insert(TABLE_TASKESTIMATE)->data($estimate) - ->autoCheck() - ->exec(); + $this->addTaskEstimate($estimate); $estimateID = $this->dao->lastInsertID(); $actionID = $this->action->create('task', $taskID, 'RecordEstimate', $work, $estimate->consumed); }