public function showSimpleCodes($date)
 {
     $date = date_create($date);
     $sc = new Settings_controller();
     $codes = $sc->getSimpleVksCodeParams();
     $codeRange = range(floatval($codes->code['start']), floatval($codes->code['end']));
     $rangeStringed = [];
     foreach ($codeRange as $code) {
         $rangeStringed[] = (string) $code;
     }
     if (count($rangeStringed)) {
         $vkses = Vks::simple()->where('date', $date)->with(['connection_codes' => function ($query) use($rangeStringed) {
             $query->whereIn('value', $rangeStringed);
         }])->get();
         $collected = [];
         foreach ($rangeStringed as $code) {
             $collected[$code] = [];
             foreach ($vkses as $vks) {
                 foreach ($vks->connection_codes as $code_vk) {
                     $code_vk->value == $code ? $collected[$code][] = $vks : false;
                 }
             }
         }
         $date = $date->format('d.m.Y');
         $this->render('Dashboards/showSimpleCodes', compact('collected', 'date'));
     } else {
         die('range is corrupted');
     }
 }
Ejemplo n.º 2
0
 public function giveSimpleCode(DateTime $vksStart, DateTime $vksEnd)
 {
     //pull data from request
     $settings = new Settings_controller();
     $params = $settings->getSimpleVksCodeParams();
     $codeRange = range(floatval($params->code['start']), floatval($params->code['end']));
     $codeGiven = false;
     foreach ($codeRange as $code) {
         $foundedCodes = ConnectionCode::where('value', (string) $code)->with(['vks' => function ($query) use($vksStart, $vksEnd) {
             $query->where('is_simple', 1)->where('start_date_time', '<=', $vksEnd->modify("+" . Settings_controller::getOther('pause_gap') . " minutes"))->where('end_date_time', '>=', $vksStart->modify("-" . Settings_controller::getOther('pause_gap') . " minutes"))->where('status', VKS_STATUS_APPROVED);
         }])->get();
         $isFree = true;
         foreach ($foundedCodes as $codeObj) {
             if ($codeObj->vks) {
                 $isFree = false;
             }
         }
         if ($isFree) {
             $codeGiven = $code;
             break;
         }
     }
     return $codeGiven;
 }