File: /var/www/vhosts/creativefellows.nl/jhtaxatie.creativefellows.nl/classes/StockData.php
<?php
final class StockData
{
public function __construct(array $data)
{
$this->type = $data[3];
$this->usage_status = $data[0];
$this->usage_status_specified = $data[1] != "" ? $data[1] : $data[2];
//$this->status_2 = $data[1];
//$this->status_3 = $data[2];
$this->serial = $data[4];
$this->month = $data[5];
$this->year = $data[6];
$this->traction = $data[7];
$this->lift_height = $data[8];
$this->build_height = $data[9];
$this->fork_length = $data[10];
$this->battery_type = $data[11];
$this->battery_voltage = $data[12];
$this->battery_capacity = $data[13];
$this->battery_build = $data[14];
$this->truck_hours = $data[15];
$this->price = $data[17];
$this->price_offer = $data[19];
$this->options = $this->setOptions($data[16]);
$this->stars = $this->getStars();
}
private function getStars()
{
$stars = $this->truckStarsArray();
return implode(",",$stars);
}
public function truckStarsArray()
{
$date_diff = date_diff(date_create($this->dateBuilt()), date_create());
$age_years = $date_diff->format('%y');
switch($this->usageStatus()){
default:
return [4];
break;
case "OHNE":
if( $this->usageStatusSpecified() === null)
{
if($age_years < 5) return [3,4,5];
else return [3,4];
}
elseif($this->usageStatusSpecified() == "R2GO"){
return [5];
}
elseif($this->usageStatusSpecified() == "AUFG"){
return [4];
}
elseif($this->usageStatusSpecified() == "NIAU"){
return [3];
}
break;
case "WERK":
if($age_years <= 4) return [3];
else return [3,4];
break;
case "ZGGA":
return [5];
break;
}
}
private function setOptions($string)
{
return array_filter(explode(",",$string));
}
public function stockId(){
return $this->stock_id;
}
public function truckStars(){
return $this->stars;
}
public function type(){
return $this->type;
}
public function usageStatus(){
return $this->usage_status;
}
public function usageStatusSpecified(){
return $this->usage_status_specified == "" ? null : $this->usage_status_specified;
}
public function dateBuilt(){
return implode("-",[$this->year,$this->month,1]);
}
public function serial(){
return $this->serial;
}
public function traction(){
return $this->traction;
}
public function lieftHieght(){
return $this->lift_height;
}
public function buildHeight(){
return $this->build_height;
}
public function forkLength(){
return $this->fork_length;
}
public function batteryType(){
return $this->battery_type;
}
public function batteryVoltage(){
return $this->battery_voltage;
}
public function batteryCapacity(){
return $this->battery_capacity;
}
public function batteryBuilt(){
return $this->battery_build;
}
public function truckHours(){
return $this->truck_hours;
}
public function truckPrice(){
return $this->price;
}
public function truckPriceOffer(){
return $this->price_offer;
}
public function truckOptions(){
return implode(",",$this->options);
}
}