public function getAllStrippenkaarten() { $all_strippenkaarten = Strippenkaart::all(['id', 'hours']); $strippenkaarten = []; foreach ($all_strippenkaarten as $strippenkaart) { $strippenkaarten[] = (object) ['value' => $strippenkaart->id, 'label' => $strippenkaart->hours]; } return $strippenkaarten; }
/** * [associateWorklogToStrippenkaart - attempt associating selected worklogs to strippenkaart] * @param [Eloquent model] $worklog [The worklog to be associated] * @return [boolean] [success status] */ public function associateWorklogToStrippenkaart($worklog) { // find available strippenkart $all_strips = Strippenkaart::where('company_id', '=', (int) $worklog->company_id)->whereNull('expiry_date')->get(); $available_strip = null; foreach ($all_strips as $curr_strip) { //error_log($curr_strip->getMinutesLeftAttribute()." : ".$worklog->minutes); if ($curr_strip->getMinutesLeftAttribute() >= $worklog->minutes) { $available_strip = $curr_strip; break; } } if ($available_strip) { // invalidate strippenkaart if ($available_strip->getMinutesLeftAttribute() === 0) { $available_strip->expiry_date = date("Y-m-d"); } $available_strip->save(); // associate worklog strippenkaart $worklog->strippenkaarten_id = $available_strip->id; $worklog->save(); return true; } return false; }
/** * [postModelData - handle posted data associated with a specific company] * @param [Eloquent model] $model [company model] * @return [json] [DT compatible object] */ public function postModelData($model) { $Model = $this->modelName; // Build our Editor instance and process the data coming from _POST global $db; $data = Editor::inst($db, 'worklogs')->fields(Field::inst('worklogs.id'), Field::inst('worklogs.date'), Field::inst('worklogs.company_id'), Field::inst('worklogs.project_id'), Field::inst('projects.name'), Field::inst('worklogs.user_id'), Field::inst('users.username'), Field::inst('worklogs.minutes')->validator('Validate::notEmpty'), Field::inst('worklogs.description'), Field::inst('worklogs.comment'), Field::inst('worklogs.billable')->validator('Validate::boolean'), Field::inst('worklogs.processed')->validator('Validate::boolean'))->leftJoin('users', 'users.id', '=', 'worklogs.user_id')->leftJoin('projects', 'projects.id', '=', 'worklogs.project_id')->leftJoin('strippenkaarten', 'strippenkaarten.id', '=', 'worklogs.strippenkaarten_id')->process($_POST)->data(); $data['projects'] = Project::all(['id as value', 'name as label']); $data['users'] = User::all(['id as value', 'username as label']); $data['strippenkaarten'] = Strippenkaart::where('expiry_date', '=', null)->get(['id as value', 'hours as label']); return Response::json($data); }
/** * [postModelData] * @param [Eloquent model] $model [company model] * @return [json] [DT compatible object] */ public function postModelData($model) { $Model = $this->modelName; // Build our Editor instance and process the data coming from _POST global $db; $data = Editor::inst($db, 'strippenkaarten')->fields(Field::inst('strippenkaarten.id'), Field::inst('strippenkaarten.company_id'), Field::inst('strippenkaarten.hours'), Field::inst('strippenkaarten.price'), Field::inst('strippenkaarten.invoice_id'), Field::inst('strippenkaarten.invoice_code'), Field::inst('strippenkaarten.entry_date'), Field::inst('strippenkaarten.expiry_date'))->process($_POST)->data(); foreach ($data as $ndx => $value) { $strip_id = (int) $value['strippenkaarten']['id']; $strippenkaart = Strippenkaart::find($strip_id); $minutes_left = $strippenkaart->getMinutesLeftAttribute(); $value['minutes_left'] = $minutes_left; $data[$ndx] = $value; } return Response::json($data); }