project = $project; $this->handle(); } public function getProjectDetails() { return $this->projectDetails; } public function getNeedinvoice( ) { return $this->needInvoice; } private function handle() { $this->setCurrentyear(); $this->setProjectname(); $this->setCustomer(); $this->setTotalToInvoicingExcl(); $this->setTotalToInvoicingIncl(); $this->setTotalInvoicedOtherYears(); $this->setTotalInvoicedThisYear(); $this->setInvoicesTotal(); $this->setNeedInvoice(); $this->setProjectDetails(); } private function setCurrentyear() { $this->currentYear = date( 'Y' ); } private function setProjectname() { $this->projectname = $this->project->projectname . '(' . $this->project->projectnumber . ')'; } private function setCustomer() { $this->customer = $this->project->customer->name; } private function setTotalToInvoicingExcl() { $offer = $this->project->offer; $this->totalToInvoicingExcl = $offer->own_revenue + $offer->other_revenue + $offer->costs; } private function setTotalToInvoicingIncl() { $this->totalToInvoicingIncl = $this->totalToInvoicingExcl * ( 1 + ( $this->project->vat->vatrate / 100 ) ); } private function setTotalInvoicedOtherYears() { $this->totalInvoicedOtherYears = Invoice::invoicePerYear( $this->project->id, $this->currentYear, FALSE ); } private function setTotalInvoicedThisYear() { $this->totalInvoicedThisYear = Invoice::invoicePerYear( $this->project->id, $this->currentYear, TRUE ); } private function setInvoicesTotal() { $this->invoicesTotal = $this->totalInvoicedOtherYears + $this->totalInvoicedThisYear; } private function setNeedInvoice() { $this->needInvoice = $this->totalToInvoicingIncl - $this->invoicesTotal; } private function setProjectDetails() { $this->projectDetails = [ 'projectname' => $this->projectname, 'customer' => $this->customer, 'totalToInvoicingExcl' => number_format( $this->totalToInvoicingExcl, 0, ',', '.' ), 'totalToInvoicingIncl' => number_format( $this->totalToInvoicingIncl, 0, ',', '.' ), 'totalInvoicedOtherYears' => number_format( $this->totalInvoicedOtherYears, 0, ',', '.' ), 'totalInvoicedThisYear' => number_format( $this->totalInvoicedThisYear, 0, ',', '.' ), 'invoicesTotal' => number_format( $this->invoicesTotal, 0, ',', '.' ), 'needInvoice' => number_format( $this->needInvoice, 0, ',', '.' ) ]; } }