belongsTo( 'Project' ); } public function payments() { return $this->hasMany( 'Payment' ); } public function vat() { return $this->belongsTo( 'Vat' ); } public static function invoicePerYear( $projectID, $year, $thatYear = TRUE ) { $invoices = Invoice::selectRAW( 'SUM(invoiceamount * ( 1 +(vatrate / 100))) AS invoicetotal' ) ->join( 'vats', 'vats.id', '=', 'invoices.vat_id' ) ->whereProjectId( $projectID ); if ( $thatYear ) { $invoices = $invoices->whereRaw( "YEAR(invoicedate) = {$year}" ); } else { $invoices = $invoices->whereRaw( "YEAR(invoicedate) != {$year}" ); } if ( $invoices->count() == 0 ) return 0; $invoices = $invoices->first(); return $invoices->invoicetotal; } public static function saveInvoice( $invoiceID, $invoice ) { $invoice = (array) $invoice; if ( $invoiceID == 0 ) { $invoice = Invoice::create( $invoice ); $invoiceID = $invoice['id']; } else { Invoice::whereId( $invoiceID )->update( $invoice ); } return $invoiceID; } }