Example #1
0
 /**
  * {@inheritDoc}
  */
 public function setUp()
 {
     $this->serviceManager = Bootstrap::getServiceManager();
     $this->versionService = $this->serviceManager->get(VersionService::class);
     $version = new Version();
     $version->setId(1);
     $versionType = new Type();
     $versionType->setDescription('This is the description');
     $version->setVersionType($versionType);
     $this->versionService->setVersion($version);
     $project = new Project();
     $project->setProject('This is the project');
     $this->projectService = $this->serviceManager->get(ProjectService::class);
     //        $this->projectService->setProject($project);
     $this->projectService->setProjectId(1);
     $this->versionService->getVersion()->setProject($this->projectService->getProject());
     $authorizeServiceMock = $this->getMockBuilder('BjyAuthorize\\View\\Helper\\IsAllowed')->disableOriginalConstructor()->getMock();
     $authorizeServiceMock->expects($this->any())->method('__invoke')->will($this->returnValue(true));
     $viewHelperManager = $this->serviceManager->get('viewhelpermanager');
     $viewHelperManager->setService('isAllowed', $authorizeServiceMock);
     $urlViewHelperMock = $this->getMockBuilder(Url::class)->disableOriginalConstructor()->getMock();
     $urlViewHelperMock->expects($this->any())->method('__invoke')->will($this->returnValue(true));
     $viewHelperManager->setService('url', $urlViewHelperMock);
     $this->versionLink = $viewHelperManager->get('versionlink');
 }
Example #2
0
 /**
  * Return the status of a project with versions.
  *
  * @param VersionService $versionService
  *
  * @return string
  */
 public function parseProjectVersion(VersionService $versionService)
 {
     $today = new \DateTime();
     $status = 'Cannot determine state';
     switch ($versionService->getVersion()->getVersionType()->getId()) {
         case VersionType::TYPE_PO:
             if ($versionService->isApproved() && $this->getProject()->getCall()->getFppCloseDate() < $today) {
                 $status = 'No FPP Submitted';
             } else {
                 $status = 'PO ' . $versionService->parseStatus();
             }
             break;
         case VersionType::TYPE_FPP:
             if (!$versionService->isApproved()) {
                 $status = sprintf("%s %s", strtoupper($versionService->getVersion()->getVersionType()->getType()), $versionService->parseStatus());
                 break;
             }
             // NO BREAK HERE !!
         // NO BREAK HERE !!
         case VersionType::TYPE_CR:
             if (is_null($this->getProject()->getDateStartActual()) || $this->getProject()->getDateStartActual() > $today) {
                 $status = 'Labelled';
             } elseif (is_null($this->getProject()->getDateEndActual()) || $this->getProject()->getDateEndActual() > $today || $this->getProject()->getDateStartActual() > $today) {
                 $status = 'Running';
             } elseif ($this->getProject()->getDateEndActual() < $today) {
                 $status = 'Completed';
             }
             break;
         case VersionType::TYPE_SR:
             $status = 'Cancelled';
             break;
     }
     return $status;
 }
Example #3
0
 public function testParseProjectVersion()
 {
     $date = new \DateTime();
     $yesterday = $date->sub(new \DateInterval('P1D'));
     $date = new \DateTime();
     $tomorrow = $date->add(new \DateInterval('P1D'));
     $project = new Project();
     $call = new Call();
     $call->setFppCloseDate($yesterday);
     $project->setCall($call);
     $this->projectService->setProject($project);
     $versionType = new Type();
     $versionType->setId(Type::TYPE_PO);
     $version = new Version();
     $version->setApproved(Version::STATUS_APPROVED);
     $version->setVersionType($versionType);
     $versionService = new VersionService();
     $versionService->setVersion($version);
     $this->assertEquals('No FPP Submitted', $this->projectService->parseProjectVersion($versionService), 'Call close date is yesterday and version is approved');
     $this->projectService->getProject()->getCall()->setFppCloseDate($tomorrow);
     $this->assertContains('PO', $this->projectService->parseProjectVersion($versionService), 'Call close date is tomorrow and version is approved');
     $versionService->getVersion()->getVersionType()->setId(Type::TYPE_FPP);
     $versionService->getVersion()->getVersionType()->setType('fpp');
     $this->assertContains('Labelled', $this->projectService->parseProjectVersion($versionService), 'FPP submitted and approved');
     $versionService->getVersion()->getVersionType()->setId(Type::TYPE_CR);
     $this->projectService->getProject()->setDateStartActual($tomorrow);
     $this->assertEquals('Labelled', $this->projectService->parseProjectVersion($versionService), 'CR Project is labelled (will start)');
     $this->projectService->getProject()->setDateStartActual($yesterday);
     $this->assertEquals('Running', $this->projectService->parseProjectVersion($versionService), 'CR Project is running');
     $this->projectService->getProject()->setDateStartActual($yesterday);
     $this->projectService->getProject()->setDateEndActual($yesterday);
     $this->assertEquals('Completed', $this->projectService->parseProjectVersion($versionService), 'CR Project is completed');
     $versionService->getVersion()->getVersionType()->setId(Type::TYPE_SR);
     $this->assertEquals('Cancelled', $this->projectService->parseProjectVersion($versionService), 'CR Project is cancelled');
     $versionService->getVersion()->getVersionType()->setId('blaat');
     $this->assertEquals('Cannot determine state.', $this->projectService->parseProjectVersion($versionService), 'Incomplete state');
 }
Example #4
0
 /**
  * This function takes all the cost versions grouped by a project version. By toggling the toArray
  * a special array is produced for displaying purposes.
  *
  * @param Project $project
  * @param Version $version
  *
  * @return Effort\Version[]|array
  */
 public function findEffortVersionByProjectPerWorkpackageByVersion(Project $project, Version $version)
 {
     $effortByWorkpackage = [];
     $versionService = new VersionService();
     foreach ($project->getWorkpackage() as $workpackage) {
         if (!is_null($workpackage->getDateEnd())) {
             continue;
         }
         $effortVersion = $this->getEntityManager()->getRepository($this->getFullEntityName('Effort\\Version'))->findEffortVersionByWorkpackageAndVersion($workpackage, $version);
         $effortByWorkpackage[$workpackage->getId()] = ['workpackage' => $workpackage, 'effort' => $versionService->parseCostOrEffortVersionAsArray($effortVersion)];
     }
     return $effortByWorkpackage;
 }