Example #1
0
 public function getCategories($table, $reseller_id)
 {
     $isResto = Model::Restodata()->where(['reseller_id', '=', (int) $reseller_id])->cursor()->count() > 0;
     if ($isResto) {
         return Model::Adviceratecategory()->select('name')->where(['table', '=', $table])->where(['segment_id', '=', 413])->order('order')->exec();
     } else {
         return [];
     }
 }
Example #2
0
 public function getAffilZl($reseller_id)
 {
     $row = Model::Restodata()->where(['reseller_id', '=', (int) $reseller_id])->first(true);
     if (!$row) {
         return $this->getAffiliation($reseller_id, false);
     }
     if (isAke($row['options'], 'affiliation_resto', null) == 1) {
         return 'resto';
     } elseif (isAke($row['options'], 'affiliation_snack', null) == 1) {
         return 'snack';
     } elseif (isAke($row['options'], 'affiliation_vin', null) == 1) {
         return 'vin';
     }
 }
Example #3
0
 public function isResto($reseller_id)
 {
     $fiche = Model::Restodata()->where(['reseller_id', '=', (int) $reseller_id])->first(true);
     return $fiche ? true : false;
 }
Example #4
0
 public function makeOfferOut($reseller_id, $nb_customer = 0, $account_id = null)
 {
     if (is_null($account_id)) {
         $user = session('user')->getUser();
         $account_id = (int) $user['id'];
     }
     if (empty($account_id)) {
         return ['success' => false, 'message' => 'account_id undefined', 'status' => 1];
     }
     $sid = $this->session_id();
     $offerin = Save::get('offer.in.' . $account_id . '.' . $sid);
     if (!$offerin) {
         return ['success' => false, 'message' => 'no offer in found for account_id => ' . $account_id, 'status' => 2];
     }
     $offerin = unserialize($offerin);
     $filter = isAke($offerin, 'filter', false);
     $nb_customer = 0 > $nb_customer ? $nb_customer : isAke($filter, 'nb_customer', 1);
     if (false === $filter) {
         return ['success' => false, 'message' => 'no offerin found for account_id => ' . $account_id, 'status' => 3];
     }
     $resto = Model::Restodata()->where(["reseller_id", "=", (int) $reseller_id])->first();
     if (empty($resto)) {
         return ['success' => false, 'message' => 'Reseller ' . $reseller_id . ' not found.', 'status' => 4];
     }
     $now = time();
     $typesAuto = isAke($filter, 'types_auto', []);
     $typesnonAuto = isAke($filter, 'types_non_auto', []);
     $food = isAke($filter, 'food', []);
     $specialities = isAke($filter, 'specialities', []);
     $geo = isAke($filter, 'geo', []);
     $account_id = isAke($filter, 'account_id', 26);
     $sellzone_id = isAke($filter, 'sellzone_id', 1);
     // $nb_customer        = isAke($filter, 'nb_customer', 1);
     $distance = isAke($filter, 'distance', 0);
     $is_now = isAke($filter, 'now', 0);
     $mode_conso = isAke($filter, 'mode_conso', 2);
     $budget = isAke($filter, 'budget', 0);
     $poi = isAke($filter, 'poi', false);
     $date = isAke($filter, 'date', date('Y-m-d'));
     $hour = isAke($filter, 'time', date('H') > 14 ? '19:30' : '12:30');
     list($h, $i) = explode(':', $hour, 2);
     list($y, $m, $d) = explode('-', $date, 3);
     $ts = mktime($h, $i, 0, $m, $d, $y);
     $minTime = $now - 1800;
     if ($ts < $minTime) {
         return ['success' => false, 'message' => "The hour [" . $hour . "] is too early. Min hour is " . date('H:i', $minTime), 'status' => 5];
     }
     $mode_conso = $mode_conso == 0 ? 2 : $mode_conso;
     $last_minute = $is_now > 0;
     switch ($mode_conso) {
         case 1:
             $type_conso = 'en_livraison';
             break;
         case 2:
             $type_conso = 'sur_place';
             break;
         case 3:
             $type_conso = 'a_emporter';
             break;
         default:
             $type_conso = 'sur_place';
     }
     $schedules = $resto['schedules'][$type_conso];
     list($canServe, $service, $last_minute, $fermeMidi, $fermeSoir, $rStock) = $this->checkCanServe((int) $reseller_id, (int) $nb_customer, $schedules, $date, $hour, $resto['options'], $type_conso, $last_minute);
     if (!empty($account_id)) {
         Model::Restoview()->firstOrCreate(['date' => date('d-m-Y'), 'account_id' => (int) $account_id, 'reseller_id' => (int) $reseller_id]);
     }
     if (!$canServe) {
         if ($service == 1 && $fermeMidi) {
             return ['success' => false, 'message' => 'Reseller ' . $reseller_id . ' closed.', 'status' => 7];
         } elseif ($service == 2 && $fermeSoir) {
             return ['success' => false, 'message' => 'Reseller ' . $reseller_id . ' closed.', 'status' => 7];
         } else {
             return ['success' => false, 'message' => 'Reseller ' . $reseller_id . ' not available.', 'status' => 6];
         }
     } else {
         list($y, $m, $d) = explode('-', $date);
         list($h, $i) = explode(':', $hour);
         $ts = mktime($h, $i, 0, $m, $d, $y);
         unset($filter['ACTION']);
         unset($filter['t']);
         $voucher = $this->makeVoucher();
         $data = redis()->get('infos.restos.' . $account_id . '.' . $reseller_id);
         if (!$data) {
             $data = [];
         } else {
             $data = unserialize($data);
         }
         unset($data['plats_ranges']);
         $offerout = Model::Restoofferout()->create(['status' => 'WAIT', 'filter' => $filter, 'stock' => (int) $nb_customer, 'hour' => $hour, 'date' => $date, 'voucher' => $voucher, 'timestamp' => (int) $ts, 'last_minute' => $last_minute, 'service' => (int) $service, 'data' => $data, 'account_id' => (int) $account_id, 'reseller_id' => (int) $reseller_id])->save();
         return ['success' => true, 'status' => 0, 'restoofferout_id' => $offerout->id, 'last_minute' => $last_minute, 'voucher' => $voucher, 'filter' => $filter];
     }
 }