hasMany( 'Payment' ); } public function project() { return $this->belongsTo( 'Project' ); } public function customer() { return $this->belongsTo( 'Customer' ); } public static function getAllOffers( $projectID, $archive = 'F', $search, $order, $direction ) { $offers = Offer::selectRAW( 'offers.*' ) ->join( 'customers AS CUS', 'CUS.id', '=', 'offers.customer_id' ) ->with( 'customer' ) ->with( 'project' ) ->where( 'offernumber', 'LIKE', "%{$search}%" ) ->orderBy( $order, $direction ); if ( $projectID ) $offers = $offers->whereProjectId( $projectID ); if ( $archive == 'F' ) $offers = $offers->where( 'offers.archive', '=', 'F' ); $offers = $offers->get(); return $offers; } public static function getOffersWithoutProject() { $offersWithoutProject = Offer::selectRAW('offers.*, CONCAT(offernumber, " ", offername) AS fulloffer') ->orderBy( 'startdate' ) // ->whereNull('rejectdate') // ->whereNull('project_id') ->whereArchive( 'F' ) ->get(); return $offersWithoutProject; } public static function saveOffer( $offerID, $offer ) { $offer = (array) $offer; $offer['startdate'] = date2mysql( $offer['startdate'] ); $offer['accepteddate'] = date2mysql( $offer['accepteddate'] ); $offer['rejectdate'] = date2mysql( $offer['rejectdate'] ); $offer['deadline'] = date2mysql( $offer['deadline'] ); if ( $offerID == 0 ) { $offer = Offer::create( $offer ); $offerID = $offer['id']; } else { Offer::whereId( $offerID )->update( $offer ); $offer = self::find( $offerID ); if ( ! is_null( $offer->project_id ) ) Project::syncOffername( $offer ); } return $offerID; } public static function syncProjectname( $projectID ) { $project = Project::find( $projectID ); $offer = self::find( $projectID ); $offer->offername = $project->projectname; $offer->save(); } public static function removeOffer( $offerID ) { Offer::whereId( $offerID )->delete(); } }