belongsTo( 'Invoice' ); } public static function getPaymentPerProject( $projectID ) { $projectPayment = self::selectRAW( 'id, invoice_id, SUM(paymentamount) as payment' ) ->whereHas( 'invoice', function ( $q ) use ( $projectID ) { $q->whereProjectId( $projectID ); } ) ->first(); if( ! $projectPayment) return 0; return $projectPayment->payment; } public static function getProjectsWithPayments($year) { $projects = self::selectRaw('INV.project_id') ->distinct() ->join('invoices AS INV', 'INV.id', '=', 'payments.invoice_id') ->whereRaw('DATE_FORMAT(INV.invoicedate, "%Y") = "'. $year.'"') ->lists('project_id'); return $projects->toArray(); } public static function savePayment( $paymentID, $payment ) { $payment = (array) $payment; if ( $paymentID == 0 ) { $payment = Payment::create( $payment ); $paymentID = $payment['id']; } else { Payment::whereId( $paymentID )->update( $payment ); } return $paymentID; } public static function removePayment( $paymentID ) { Payment::whereId( $paymentID )->delete(); } }