public function calculate()
    {
        if (!$this->IsCart()) {
            return $this->Total;
        }
        $calculator = OrderTotalCalculator::create($this);
        return $this->Total = $calculator->calculate();
    }
public function calculate()
    {
        if (!$this->IsCart()) {
            return $this->Total;
        }
        $calculator = OrderTotalCalculator::create($this);
        return $this->Total = $calculator->calculate();
    }
public function calculate ( ) { if ( ! $ this -> IsCart ( ) ) { return $ this -> Total ; } $ calculator = OrderTotalCalculator :: create ( $ this ) ; return $ this -> Total = $ calculator -> calculate ( ) ; }
Calculate the total

@return float the final total
Calculate the total