Можете да проверите вашата база данни, за да се уверите, че предложението вече не е прието с нещо по този начин. Ако искате да го направите и за двата случая (приемане и отхвърляне), може би бихте могли да преместите проверката в допълнителна функция, която проверява дали предложението вече е в „завършващо“ състояние (т.е. Прието или Отхвърлено).
Примерно допълнение към вашето reject_job_proposal
методът може да бъде...
public function reject_job_proposal ($job_id, $provider_id, $proposal_id)
{
$this->db->select('status');
$this->db->from('job_proposal');
$this->db->where('id', $proposal_id);
$query = $this->db->get();
$result = $query->row();
if ($result->status === 'Accepted') {
// Throw error message, e.g. 'Sorry, this job has been accepted!'
return;
}
...
}