示例#1
0
 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;
 }
示例#3
0
 /**
  * [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);
 }