/** * @test */ public function scope_for_sheets_associated_with_given_job() { $job = JobCard::find(1); $job_log_sheets = PrintingLogSheet::associatedWithJob($job)->get(); $associated_log_sheets_manually = DB::table('printing_log_sheets')->where('job_id_fk', $job->job_cards_id)->get(); foreach ($job_log_sheets as $sheet) { $this->assertEquals($sheet->job_id_fk, $job->job_cards_id); } $this->assertCount(count($associated_log_sheets_manually), $job_log_sheets); }
/** * Scope a query to only include PrintingLogEntries for a given job. * * @param $query * @param int|JobCard $job * @return \Illuminate\Database\Eloquent\Builder */ public function scopeAssociatedWithJob($query, $job) { $logSheets = PrintingLogSheet::associatedWithJob($job); if (is_int($job)) { return $query->where('job_id_fk', $job); } return $query->where('job_id_fk', $job->job_cards_id); }