コード例 #1
0
 /**
  * @test
  */
 public function actual_gp()
 {
     $currentMonthDespatch = DespatchLogEntry::currentMonth()->get();
     $gpCalculator = new GpIndicatorsCalculator();
     $this->assertInstanceOf(GpIndicatorsCalculator::class, $gpCalculator, "GP Calculator Object");
     $globalTarget = GlobalVariable::first()->monthly_gp_target;
     $gpTarget = $gpCalculator->target();
     $actualGpCalc = 0;
     $actualTurnOverCalc = 0;
     foreach ($currentMonthDespatch as $entry) {
         $this->assertInstanceOf(DespatchLogEntry::class, $entry);
         $actualGpCalc += $entry->gp_contribution;
         $this->assertInternalType('float', $entry->gp_contribution);
         $actualTurnOverCalc += $entry->selling_price * $entry->net_weight;
         $this->assertInternalType('float', $entry->selling_price);
     }
     $this->assertEquals(round($actualGpCalc), $gpCalculator->monthActualGp(), "Current Month Actual");
     $this->assertEquals(round($actualTurnOverCalc), $gpCalculator->monthActualTurnOver(), "Current Month Actual Turn Over");
     $this->assertEquals(round($actualGpCalc / $gpTarget * 100), round($gpCalculator->monthActualPercentage()), "Current Month Actual Percentage");
     $this->assertEquals(round($actualGpCalc / $globalTarget * 100), round($gpCalculator->monthProductionAchievedPercentage()), "Current Month Production Target Percentage");
 }