public function send_rating(Request $request = null) { $gen = Gen::find($request->gen_id); $this->data['gen'] = $gen; $this->data['gens'] = Gen::all(); return view('manage.send_rating', $this->data); }
public function dashboard($domain, $gen_id, $base_id = null) { // $current_gen = Gen::getCurrentGen(); if ($this->user->role == 0) { return $this->responseUnAuthorized('Bạn không có quyền truy cập dữ liệu này'); } $data = []; if ($gen_id) { $current_gen = Gen::find($gen_id); } else { return response()->json([message => "gen_id is required"], 400); } $data['current_gen'] = $this->genTransformer->transform($current_gen); if ($base_id == null) { $zero_paid_num = Register::where('gen_id', $current_gen->id)->where('status', '=', 1)->where('money', '=', 0)->count(); $total_money = Register::where('gen_id', $current_gen->id)->sum('money'); $num = Register::where('gen_id', $current_gen->id)->count(); $paid_number = Register::where('gen_id', $current_gen->id)->where('code', "!=", "")->count(); $uncalled_number = Register::where('gen_id', $current_gen->id)->where('call_status', 0)->groupBy('user_id')->count(); $total_classes = $current_gen->studyclasses->count(); $remain_days = strtotime($current_gen->end_time) - time(); $registers_by_date = Register::select(DB::raw('count(1) as num'))->where('gen_id', $current_gen->id)->groupBy(DB::raw('DATE(created_at)'))->pluck('num')->toArray(); $money_by_date = Register::select(DB::raw('sum(money) as money'))->where('gen_id', $current_gen->id)->groupBy(DB::raw('DATE(paid_time)'))->pluck('money')->toArray(); $registers_by_hour = Register::select(DB::raw('HOUR(created_at) as \'hour\', count(1) as num'))->where('gen_id', $current_gen->id)->groupBy(DB::raw('HOUR(created_at)'))->get(); $registers_hour_array = array(); for ($i = 0; $i < 24; $i++) { $registers_hour_array[$i] = 0; } foreach ($registers_by_hour as $regis) { $registers_hour_array[$regis->hour] = $regis->num; } $data['money_by_date'] = $money_by_date; $data['zero_paid_num'] = $zero_paid_num; $data['classes'] = $this->classTransformer->transformCollection($current_gen->studyclasses); $data['total_money'] = is_numeric($total_money) ? $total_money : 0; $data['register_number'] = is_numeric($num) ? $num : 0; $data['paid_number'] = is_numeric($paid_number) ? $paid_number : 0; $data['uncalled_number'] = is_numeric($uncalled_number) ? $uncalled_number : 0; $data['total_classes'] = is_numeric($total_classes) ? $total_classes : 0; $data['remain_days'] = round((is_numeric($remain_days) ? $remain_days : 0) / (24 * 3600), 2); $data['date_array'] = createDateRangeArray(strtotime($current_gen->start_time), strtotime($current_gen->end_time)); $data['registers_by_date'] = $registers_by_date; $data['registers_by_hour'] = $registers_hour_array; } else { $base = Base::find($base_id); $classes = $base->classes()->where('gen_id', $current_gen->id); $registers = Register::where('gen_id', $current_gen->id)->where('gen_id', $current_gen->id)->whereIn('class_id', $classes->pluck('id')); $zero_paid_num = Register::where('status', '=', 1)->where('money', '=', 0)->whereIn('class_id', $classes->pluck('id'))->count(); $total_money = $registers->sum('money'); $num = $registers->count(); $paid_number = $registers->where('gen_id', $current_gen->id)->where('code', "!=", "")->count(); $uncalled_number = $registers->where('call_status', 0)->groupBy('user_id')->count(); $total_classes = $classes->count(); $remain_days = strtotime($current_gen->end_time) - time(); $classes_id = $classes->pluck("id"); $registers_by_date = Register::select(DB::raw('count(1) as num'))->whereIn("class_id", $classes_id)->where('gen_id', $current_gen->id)->groupBy(DB::raw('DATE(created_at)'))->pluck('num')->toArray(); $registers_by_hour = Register::select(DB::raw('HOUR(created_at) as \'hour\', count(1) as num'))->whereIn("class_id", $classes_id)->where('gen_id', $current_gen->id)->groupBy(DB::raw('HOUR(created_at)'))->get(); $money_by_date = Register::select(DB::raw('sum(money) as money'))->whereIn("class_id", $classes_id)->where('gen_id', $current_gen->id)->groupBy(DB::raw('DATE(paid_time)'))->pluck('money')->toArray(); $registers_hour_array = array(); for ($i = 0; $i < 24; $i++) { $registers_hour_array[$i] = 0; } foreach ($registers_by_hour as $regis) { $registers_hour_array[$regis->hour] = $regis->num; } $data['money_by_date'] = $money_by_date; $data['zero_paid_num'] = $zero_paid_num; $data['classes'] = $this->classTransformer->transformCollection($current_gen->studyclasses); $data['total_money'] = is_numeric($total_money) ? $total_money : 0; $data['register_number'] = is_numeric($num) ? $num : 0; $data['paid_number'] = is_numeric($paid_number) ? $paid_number : 0; $data['uncalled_number'] = is_numeric($uncalled_number) ? $uncalled_number : 0; $data['total_classes'] = is_numeric($total_classes) ? $total_classes : 0; $data['remain_days'] = round((is_numeric($remain_days) ? $remain_days : 0) / (24 * 3600), 2); $data['date_array'] = createDateRangeArray(strtotime($current_gen->start_time), strtotime($current_gen->end_time)); $data['registers_by_date'] = $registers_by_date; $data['registers_by_hour'] = $registers_hour_array; } return response()->json($data, 200); }
public function get_current_shifts($gen_id = null) { if ($gen_id) { $current_gen = Gen::find($gen_id); } else { $current_gen = Gen::getCurrentGen(); } $shifts = $current_gen->shifts()->get(); $weeks = $shifts->pluck('week')->unique()->sortByDesc(function ($week, $key) { return $week; }); $return_arr = []; foreach ($weeks as $week) { $week_shifts = $shifts->where('week', $week); $dates = $week_shifts->pluck('date')->unique(); $return_dates = []; foreach ($dates as $date) { $obj = new \stdClass(); $obj->date = date_shift(strtotime($date)); $obj->shifts = $shifts->filter(function ($item) use($date) { return $item->date == $date; }); $shiftsData = $this->shiftTransfromer->transformCollection($obj->shifts); $obj->shifts = $shiftsData; $return_dates[] = $obj; } $return_arr[] = ['dates' => $return_dates, 'week' => $week]; } return response()->json(['weeks' => $return_arr]); }
public function download_paid_students(Request $request) { $genId = $request->genid; $gen = Gen::find($genId); $registers_id = $gen->registers()->where('status', 1)->get()->pluck('user_id')->toArray(); $students = User::whereIn('id', $registers_id)->get(); $students = $students->map(function ($student) use($gen) { $student->how_know = how_know($student->how_know); $student->gender = gender($student->gender); $student->dob = format_date($student->dob); $registers = $student->registers()->where('gen_id', $gen->id)->get(); $student->class = $registers->map(function ($register) { $class = $register->studyClass; $base = $class->base; $className = $class->name . " (" . $base->name . ": " . $base->address . ")"; return $className; })->reduce(function ($carry, $item) { return $carry . ", " . $item; }, ""); unset($student->id); unset($student->created_at); unset($student->updated_at); unset($student->role); unset($student->code); unset($student->avatar_url); unset($student->cover_url); unset($student->description); unset($student->money); unset($student->status); unset($student->avatar_name); unset($student->cover_name); unset($student->cover_name); unset($student->order); unset($student->registers); return $student; })->toArray(); return Excel::create('Khoá ' . $gen->name, function ($excel) use($students) { $excel->sheet('students', function ($sheet) use($students) { $sheet->fromArray($students); }); })->download('xls'); }