/**
  * 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));
 }