/** * post_scans_by_period function. * * @description Devuelve las estadísticas de escaneos por mes * @access public * @param mixed $id (default: null) * @return void */ public function postScansByPeriod($id = null) { $id = Input::get('id', array(0)); $period = Input::get('period', date("m/Y", time())); $period = join("-", array_reverse(explode("/", $period))) . "-01"; $scans = Scan::where('created_at', '>=', $period); $scans->whereIn('coupon_id', $id); $scans = $scans->groupBy('coupon_id')->groupBy('day')->get(array('coupon_id', DB::raw('COUNT(`id`) as qty'), DB::raw('DATE_FORMAT(`created_at`,"%Y-%m-%d") AS day'))); $data = array(); foreach ($scans as $scan) { $data[$scan->coupon_id][$scan->day] = $scan->qty; } return Response::json(array("data" => $data, "period" => $period)); }
/** * scan function. * * @access public * @return void */ public function postScan() { $qr = Input::get('qr', ""); $coupon = Coupon::where("qr", "=", $qr)->first(); if (!$coupon || trim($qr) == "") { return Response::json(array("service" => __FUNCTION__, "status" => true, "error" => true, "message" => "Coupon not found")); } $user_id = Auth::user()->id; $count = Scan::where("user_id", "=", $user_id)->where("created_at", ">", date("Y-m-d", time()))->count(); if ($count > 1) { return Response::json(array("service" => __FUNCTION__, "status" => true, "error" => true, "message" => "Scan error")); } $scan = new Scan(); $scan->user_id = $user_id; $scan->coupon_id = $coupon->id; $scan->value = 5; $scan->save(); $redems = Scan::where("coupon_id", "=", $coupon->id)->count(); //$user->register->scans()->sum("value") $data = array("added" => 5, "total" => 0, "redems" => $redems); return Response::json(array("service" => __FUNCTION__, "status" => true, "data" => $data)); }