Example #1
0
 public function process($data)
 {
     $db = Zend_Registry::get('db');
     $actionMapper = new C3op_Projects_ActionMapper($db);
     if ($this->isValid($data) !== true) {
         throw new C3op_Form_ActionEditException('Invalid data!');
     } else {
         $id = $data['id'];
         $action = $actionMapper->findById($id);
         $action->SetTitle($data['title']);
         $action->SetProject($data['project']);
         $action->SetStatus($data['status']);
         $action->SetDescription($data['description']);
         $action->SetSubordinatedTo($data['subordinatedTo']);
         $action->SetResponsible($data['responsible']);
         $action->SetMilestone($data['milestone']);
         $action->SetRequirementForReceiving($data['requirementForReceiving']);
         $predictedBeginDate = $data['predictedBeginDate'];
         $dateValidator = new C3op_Util_ValidDate();
         if ($dateValidator->isValid($predictedBeginDate)) {
             $converter = new C3op_Util_DateConverter();
             $dateForMysql = $converter->convertDateToMySQLFormat($predictedBeginDate);
             $action->SetPredictedBeginDate($dateForMysql);
         }
         $predictedFinishDate = $data['predictedFinishDate'];
         $dateValidator = new C3op_Util_ValidDate();
         if ($dateValidator->isValid($predictedFinishDate)) {
             $converter = new C3op_Util_DateConverter();
             $dateForMysql = $converter->convertDateToMySQLFormat($predictedFinishDate);
             $action->SetPredictedFinishDate($dateForMysql);
         }
         $actionMapper->update($action);
         return $id;
     }
 }
Example #2
0
 public function RejectReceipt(C3op_Projects_Action $action, C3op_Projects_ActionMapper $mapper)
 {
     $action->SetStatus(C3op_Projects_ActionStatusConstants::STATUS_IN_EXECUTION);
     //$action->SetRealFinishDate("0000-00-00");
     $mapper->update($action);
     $this->LogRejection($action);
 }
Example #3
0
 public function start(C3op_Projects_Action $action, C3op_Projects_ActionMapper $actionMapper)
 {
     $action->SetRealBeginDate(date("Y-m-d"));
     $action->SetStatus(C3op_Projects_ActionStatusConstants::STATUS_IN_EXECUTION);
     $actionMapper->update($action);
     $this->LogAutoStart($action);
 }
Example #4
0
 public function AcknowledgeReceipt(C3op_Projects_Action $action, C3op_Projects_ActionMapper $mapper)
 {
     if (!$action->GetDone()) {
         $action->SetStatus(C3op_Projects_ActionStatusConstants::STATUS_RECEIVED);
         $mapper->update($action);
     }
     $this->LogAcknowledgment($action);
 }
Example #5
0
 public static function ChangePredictedFinishDate(C3op_Projects_Action $action, C3op_Projects_ActionMapper $actionMapper, $newDate, $observation)
 {
     if ($observation != "" && $action->GetPredictedFinishDate() != $newDate) {
         $action->SetPredictedFinishDate($newDate);
         $actionMapper->update($action);
         self::LogPredictedFinishDateChanging($action, $observation);
     }
 }
Example #6
0
 public function process($data)
 {
     if ($this->isValid($data) !== true) {
         throw new C3op_Form_HumanResourceCreateException('Invalid data!');
     } else {
         $db = Zend_Registry::get('db');
         $humanResourceMapper = new C3op_Projects_HumanResourceMapper($db);
         $humanResource = $humanResourceMapper->findById($this->id->GetValue());
         $actionMapper = new C3op_Projects_ActionMapper($this->db);
         $itsAction = $actionMapper->findById($humanResource->GetAction());
         $weHaveThedates = true;
         $predictedBeginDate = $this->predictedBeginDate->GetValue();
         $dateValidator = new C3op_Util_ValidDate();
         if ($dateValidator->isValid($predictedBeginDate)) {
             $converter = new C3op_Util_DateConverter();
             $newBeginDate = $converter->convertDateToMySQLFormat($predictedBeginDate);
         } else {
             $weHaveThedates = false;
         }
         $predictedFinishDate = $this->predictedFinishDate->GetValue();
         $dateValidator = new C3op_Util_ValidDate();
         if ($dateValidator->isValid($predictedFinishDate)) {
             $converter = new C3op_Util_DateConverter();
             $newFinishDate = $converter->convertDateToMySQLFormat($predictedFinishDate);
         } else {
             $weHaveThedates = false;
         }
         if (!$weHaveThedates) {
             throw new C3op_Form_HumanResourceCreateException('É obrigatório informar as datas contratadas.');
         }
         $formerPredictedBeginDate = $itsAction->GetPredictedBeginDate();
         $formerPredictedFinishDate = $itsAction->GetPredictedFinishDate();
         $dateChanged = false;
         if ($dateValidator->isValid($formerPredictedBeginDate) && $formerPredictedBeginDate != $newBeginDate) {
             $dateChanged = true;
         }
         if ($dateValidator->isValid($formerPredictedFinishDate) && $formerPredictedFinishDate != $newFinishDate) {
             $dateChanged = true;
         }
         $observation = $this->observation->GetValue();
         if ($dateChanged && $observation == "") {
             throw new C3op_Form_HumanResourceCreateException('Mudanças de data devem ser justificadas.');
         } else {
             C3op_Projects_HumanResourceContracting::ContactContract($itsAction, $humanResource, $humanResourceMapper);
             if ($observation != "" && $itsAction->GetPredictedBeginDate() != $newBeginDate) {
                 C3op_Projects_ActionDateChange::ChangePredictedBeginDate($itsAction, $actionMapper, $newBeginDate, $observation);
             }
             if ($observation != "" && $itsAction->GetPredictedFinishDate() != $newFinishDate) {
                 C3op_Projects_ActionDateChange::ChangePredictedFinishDate($itsAction, $actionMapper, $newFinishDate, $observation);
             }
             $actionMapper->update($itsAction);
             $humanResourceMapper->update($humanResource);
             return $humanResource->GetId();
         }
     }
 }
Example #7
0
 public function AcceptReceipt(C3op_Projects_Action $action, C3op_Projects_ActionMapper $mapper)
 {
     if ($action->GetStatus() == C3op_Projects_ActionStatusConstants::STATUS_RECEIVED) {
         $action->SetStatus(C3op_Projects_ActionStatusConstants::STATUS_DONE);
         $action->SetDone(true);
         $mapper->FetchLastReceiptDate($action);
         $action->SetRealFinishDate($action->GetReceiptDate($mapper));
         $mapper->update($action);
     }
     $this->LogDelivery($action);
 }
Example #8
0
 public function retrieveTree(C3op_Projects_Project $project, C3op_Projects_ProjectMapper $projectMapper, C3op_Projects_ActionMapper $actionMapper)
 {
     $mainActions = $projectMapper->getAllActionsSubordinatedTo($project);
     $projectTree = array();
     foreach ($mainActions as $actionId) {
         $loopAction = $actionMapper->findById($actionId);
         $obj = new C3op_Projects_ActionTree();
         $actionTree = $obj->retrieveTree($loopAction, $actionMapper);
         $projectTree[$actionId] = $actionTree;
     }
     // get all subordinated actions
     return $projectTree;
 }
Example #9
0
 private function getTreeOfAllSubordinatedActions(C3op_Projects_Action $action, C3op_Projects_ActionMapper $actionMapper)
 {
     $tree = array();
     $subordinatedIds = $actionMapper->getActionsSubordinatedTo($action);
     $a = $action->GetId();
     if (count($subordinatedIds) > 0) {
         foreach ($subordinatedIds as $key => $id) {
             $loopAction = $actionMapper->findById($id);
             $tree[$id] = $this->getTreeOfAllSubordinatedActions($loopAction, $actionMapper);
         }
     }
     return $tree;
 }
Example #10
0
 public function GetAllActionsSubordinatedTo(C3op_Projects_Action $action, C3op_Projects_ActionMapper $actionMapper, C3op_Projects_Project $project, C3op_Projects_ProjectMapper $projectMapper)
 {
     echo "<hr>entering getallactionssubordinatedto<br>";
     echo "action " . $action->GetId() . " - " . $action->GetTitle() . "<br>";
     echo "project " . $project->GetId() . "<br>";
     $allActionsBelowMe = array();
     $actionsIdJustBelowMe = $actionMapper->getActionsSubordinatedTo($action);
     while (list(, $actionId) = each($actionsIdJustBelowMe)) {
         $thisAction = $actionMapper->findById($actionId);
         $actionsJustBelowMe = $this->GetAllActionsSubordinatedTo($thisAction, $actionMapper, $project, $projectMapper);
         $allActionsBelowMe[] = array("action" => $thisAction, "actionsBelow" => $actionsJustBelowMe);
     }
     echo "returning from getallactionssubordinatedto<br>";
     echo "action " . $action->GetId() . " - " . $action->GetTitle() . "<br>";
     echo "project " . $project->GetId() . "<br>";
     print_r($allActionsBelowMe);
     echo "count allactionsbelowme " . count($allActionsBelowMe) . "<br><hr><br>";
     return $allActionsBelowMe;
 }
Example #11
0
 public function process($data)
 {
     if ($this->isValid($data) !== true) {
         throw new C3op_Form_ActionCreateException('Invalid data!');
     } else {
         $db = Zend_Registry::get('db');
         $actionMapper = new C3op_Projects_ActionMapper($db);
         $action = new C3op_Projects_Action($this->project->GetValue());
         //            $action->SetTitle($this->title->GetValue());
         $action->SetTitle($data['title']);
         $action->SetStatus(C3op_Projects_ActionStatusConstants::STATUS_PLAN);
         $action->SetDescription($this->description->GetValue());
         $predictedBeginDate = $this->predictedBeginDate->GetValue();
         $dateValidator = new C3op_Util_ValidDate();
         if ($dateValidator->isValid($predictedBeginDate)) {
             $converter = new C3op_Util_DateConverter();
             $dateForMysql = $converter->convertDateToMySQLFormat($predictedBeginDate);
             $action->SetPredictedBeginDate($dateForMysql);
         }
         $predictedFinishDate = $this->predictedFinishDate->GetValue();
         $dateValidator = new C3op_Util_ValidDate();
         if ($dateValidator->isValid($predictedFinishDate)) {
             $converter = new C3op_Util_DateConverter();
             $dateForMysql = $converter->convertDateToMySQLFormat($predictedFinishDate);
             $action->SetPredictedFinishDate($dateForMysql);
         }
         $action->SetSubordinatedTo($this->subordinatedTo->GetValue());
         $action->SetResponsible($this->responsible->GetValue());
         $milestone = $this->milestone->GetValue();
         if ($milestone == '1') {
             $action->SetMilestone(1);
         } else {
             $action->SetMilestone(0);
         }
         $requirementForReceiving = $this->requirementForReceiving->GetValue();
         if ($requirementForReceiving == '1') {
             $action->SetRequirementForReceiving(1);
         } else {
             $action->SetRequirementForReceiving(0);
         }
         $actionMapper->insert($action);
         return $action->getId();
     }
 }
Example #12
0
 private function initActionWithCheckedId(C3op_Projects_ActionMapper $mapper)
 {
     return $mapper->findById($this->checkIdFromGet());
 }
Example #13
0
 public function getAllUnacknowledgededActions(C3op_Projects_Project $p, C3op_Projects_ActionMapper $actionMapper)
 {
     $result = array();
     foreach ($this->db->query(sprintf('SELECT a.id
                 FROM projects_actions a
                 INNER JOIN projects_actions_dates d
                 ON a.id = d.action
                 WHERE a.status = %d AND a.project = %d ORDER BY d.real_begin_date', C3op_Projects_ActionStatusConstants::STATUS_IN_EXECUTION, $p->GetId())) as $row) {
         $action = $actionMapper->findById($row['id']);
         $obj = new C3op_Projects_ActionStartMode($action, $actionMapper);
         if ($obj->isUnacknowledged()) {
             $result[] = $row['id'];
         }
     }
     return $result;
 }
Example #14
0
 public function receivablesAction()
 {
     $receivableMapper = new C3op_Projects_ReceivableMapper($this->db);
     $id = $this->checkIdFromGet();
     $thisProject = $this->projectMapper->findById($id);
     $receivablesIdList = $this->projectMapper->getAllReceivables($thisProject);
     $receivablesList = array();
     reset($receivablesList);
     $receivablesTotalValue = 0;
     $receivablesCounter = 0;
     foreach ($receivablesIdList as $receivableId) {
         $thisReceivable = $receivableMapper->findById($receivableId);
         $receivablesCounter++;
         if ($thisReceivable->GetTitle()) {
             $title = $thisReceivable->GetTitle();
         } else {
             $title = "(#{$receivablesCounter})";
         }
         $validator = new C3op_Util_ValidDate();
         if ($validator->isValid($thisReceivable->GetPredictedDate())) {
             $predictedDate = C3op_Util_DateDisplay::FormatDateToShow($thisReceivable->GetPredictedDate());
         } else {
             $predictedDate = "(data desconhecida)";
         }
         if ($thisReceivable->GetPredictedValue() > 0) {
             $receivablesTotalValue += $thisReceivable->GetPredictedValue();
             $predictedValue = C3op_Util_CurrencyDisplay::FormatCurrency($thisReceivable->GetPredictedValue());
         } else {
             $predictedValue = "";
         }
         $productsIdList = $receivableMapper->getAllProducts($thisReceivable);
         $productsList = array();
         foreach ($productsIdList as $productId) {
             $actionMapper = new C3op_Projects_ActionMapper($this->db);
             $thisAction = $actionMapper->findById($productId);
             $actionTitle = sprintf("<a href=/projects/action/detail/?id=%d>%s</a>", $productId, $thisAction->GetTitle());
             $productsList[$productId] = array('title' => $actionTitle, 'linkDetail' => '/projects/action/detail/?id=' . $productId);
         }
         $receivablesList[$receivableId] = array('title' => $title, 'productsList' => $productsList, 'predictedDate' => $predictedDate, 'predictedValue' => $predictedValue, 'editLink' => '/projects/receivable/edit/?id=' . $receivableId);
     }
     if ($receivablesTotalValue == $thisProject->GetValue()) {
         $projectValue = C3op_Util_CurrencyDisplay::FormatCurrency($receivablesTotalValue) . " (OK)";
     } else {
         $projectValue = "Valor do Projeto: " . C3op_Util_CurrencyDisplay::FormatCurrency($thisProject->GetValue());
         $projectValue .= " Total dos recebimentos:" . C3op_Util_CurrencyDisplay::FormatCurrency($receivablesTotalValue) . " (?)";
     }
     $projectInfo = array('title' => $thisProject->GetTitle(), 'linkDetail' => '/projects/project/detail/?id=' . $id, 'projectValue' => $projectValue, 'editLink' => '/projects/project/edit/?id=' . $id, 'receivablesList' => $receivablesList);
     $this->view->projectInfo = $projectInfo;
 }
Example #15
0
 public function GetReceiptDate(C3op_Projects_ActionMapper $actionMapper)
 {
     if (is_null($this->receiptDate)) {
         $actionMapper->FetchLastReceiptDate($this);
     }
     return $this->receiptDate;
 }