Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace App\Http\Controllers\api;
- use App\Detail_materi_dosen;
- use App\Dosen;
- use Illuminate\Http\Request;
- use App\Http\Controllers\Controller;
- use App\Penilaian_dosen;
- use App\Periode_praktikum;
- use Illuminate\Support\Facades\Auth;
- use Illuminate\Support\Facades\DB;
- class DosenController extends Controller
- {
- public function profile(Request $request){
- $user = auth('dosen')->user();
- $dosen = Dosen::whereNip($user->username)->firstOrFail();
- return response()->json([
- "status" => "sukses",
- "pesan" => "Berhasil",
- "data" => [$dosen]
- ]);
- }
- public function get_praktikum(Request $request)
- {
- // $praktikum = Periode_praktikum::with('praktikum')->where('periode_praktikum.status',1)->get();
- $praktikum = DB::table('penilaian_dosen')
- ->select('periode_praktikum.tahun','praktikum.id as praktikum_id', 'dosen.nama as namaDosen','praktikum.nama as namaPraktikum',DB::raw('COUNT(penilaian_dosen.praktikan_id) as total'))
- ->join('praktikan','penilaian_dosen.praktikan_id','praktikan.id')
- ->join('periode_praktikum','praktikan.periode_praktikum_id','periode_praktikum.id')
- ->join('praktikum','periode_praktikum.praktikum_id','praktikum.id')
- ->join('periode_praktikum_dosen','penilaian_dosen.periode_praktikum_dosen_id','periode_praktikum_dosen.id')
- ->join('dosen_laboratorium','periode_praktikum_dosen.dosen_laboratorium_id','dosen_laboratorium.id')
- ->join('dosen','dosen_laboratorium.dosen_id','dosen.id')
- // ->where('dosen_laboratorium.laboratorium_id',\Auth::user()->id-1)
- ->where('dosen.nip',Auth::user()->username)
- ->where('periode_praktikum.status',1)
- ->groupBy('namaDosen')
- ->groupBy('namaPraktikum')
- ->groupBy('praktikum_id')
- ->groupBy('tahun')
- ->get();
- return response()->json([
- "status" => "sukses",
- "pesan" => "Berhasil",
- "data" => $praktikum
- ]);
- }
- public function get_praktikan(Request $request)
- {
- $banyakModul = DB::select('select count(*) as hitung from
- (SELECT modul_dosen_id from modul_materi_dosen
- JOIN materi on modul_materi_dosen.materi_id = materi.id
- JOIN praktikum on materi.praktikum_id = praktikum.id
- JOIN modul_dosen on modul_dosen.id = modul_materi_dosen.modul_dosen_id
- JOIN periode_praktikum on periode_praktikum.id = modul_dosen.periode_praktikum_id
- where periode_praktikum.praktikum_id ='.$request->praktikum_id.'
- and periode_praktikum.status = 1
- GROUP by modul_dosen_id)
- as hitung;');
- $idModulMateri = DB::table('modul_materi_dosen')
- ->select('modul_materi_dosen.modul_dosen_id as idModul')
- ->join('modul_dosen', 'modul_materi_dosen.modul_dosen_id', 'modul_dosen.id')
- ->join('periode_praktikum', 'modul_dosen.periode_praktikum_id', 'periode_praktikum.id')
- ->join('praktikum', 'periode_praktikum.praktikum_id', 'praktikum.id')
- ->where('periode_praktikum.status', 1)
- ->where('praktikum_id', $request->praktikum_id)
- ->groupBy('idModul')
- ->get();
- $modulMateri = DB::table('modul_materi_dosen')
- ->select('modul_dosen.id as idDosen','materi.id as idMateri','materi.nama as nama')
- ->join('materi','modul_materi_dosen.materi_id','=','materi.id')
- ->join('modul_dosen','modul_materi_dosen.modul_dosen_id','modul_dosen.id')
- ->join('periode_praktikum','modul_dosen.periode_praktikum_id','periode_praktikum.id')
- ->join('praktikum','periode_praktikum.praktikum_id','praktikum.id')
- ->where('periode_praktikum.status',1)
- ->where('praktikum.id',$request->praktikum_id)
- ->get();
- $idModul = DB::table('modul_materi_dosen')
- ->select('modul_materi_dosen.modul_dosen_id as idModul')
- ->join('modul_dosen','modul_materi_dosen.modul_dosen_id','modul_dosen.id')
- ->join('periode_praktikum','modul_dosen.periode_praktikum_id','periode_praktikum.id')
- ->join('praktikum','periode_praktikum.praktikum_id','praktikum.id')
- ->where('periode_praktikum.status',1)
- ->where('praktikum.id',$request->praktikum_id)
- ->groupBy('modul_materi_dosen.modul_dosen_id')
- ->get();
- $praktikan = DB::table('mahasiswa')
- ->select('mahasiswa.npm as npm','mahasiswa.nama as namaMahasiswa','sesi.nama as namaSesi','sesi.waktu as waktu','penilaian_dosen.id as idPenilaian','praktikan.id as praktikanID','penilaian_dosen.id as idPenilaian')
- ->join('praktikan','praktikan.mahasiswa_id','mahasiswa.id')
- ->join('penilaian_dosen','praktikan.id','penilaian_dosen.praktikan_id')
- ->join('periode_praktikum_dosen','penilaian_dosen.periode_praktikum_dosen_id','periode_praktikum_dosen.id')
- ->join('dosen_laboratorium','periode_praktikum_dosen.dosen_laboratorium_id','dosen_laboratorium.id')
- ->join('dosen','dosen_laboratorium.dosen_id','dosen.id')
- ->join('periode_praktikum','praktikan.periode_praktikum_id','periode_praktikum.id')
- ->join('sesi','praktikan.sesi_id','sesi.id')
- ->where('periode_praktikum.praktikum_id',$request->praktikum_id)
- ->where('periode_praktikum.status',1)
- ->where('dosen.nip',Auth::user()->username)
- ->get();
- if(count($praktikan) == 0){
- return response()->json([
- "status" => "sukses",
- "pesan" => "Anda tidak mempunyai praktikan",
- "data" => []
- ]);
- }
- $nilaiSemuaPraktikan = array();
- foreach($praktikan as $p){
- $nilaiPraktikan = array();
- for($i = 1; $i<=$banyakModul[0]->hitung;$i++){
- $nilai = Detail_materi_dosen::select(DB::raw('AVG(detail_materi_dosen.nilai_materi) as avg'))
- ->join('modul_materi_dosen','detail_materi_dosen.modul_materi_dosen_id','modul_materi_dosen.id')
- ->join('penilaian_dosen','detail_materi_dosen.penilaian_dosen_id','penilaian_dosen.id')
- ->join('materi','modul_materi_dosen.materi_id','materi.id')
- ->join('praktikum','materi.praktikum_id','praktikum.id')
- ->where('detail_materi_dosen.penilaian_dosen_id',$p->idPenilaian)
- ->where('penilaian_dosen.praktikan_id',$p->praktikanID)
- ->where('modul_materi_dosen.modul_dosen_id',$idModulMateri[$i-1]->idModul)
- ->where('materi.praktikum_id',$request->praktikum_id)
- ->first();
- if($nilai){
- array_push($nilaiPraktikan,$nilai->avg);
- }else{
- array_push($nilaiPraktikan,'0');
- }
- }
- array_push($nilaiSemuaPraktikan, $nilaiPraktikan);
- }
- // OTW
- $idPeriodePraktikumDosen = DB::table('periode_praktikum_dosen')
- ->select('periode_praktikum_dosen.id as idDosen','periode_praktikum_dosen.status as status')
- ->join('dosen_laboratorium','periode_praktikum_dosen.dosen_laboratorium_id','dosen_laboratorium.id')
- ->join('dosen','dosen_laboratorium.dosen_id','dosen.id')
- ->join('periode_praktikum','periode_praktikum.id','periode_praktikum_dosen.periode_praktikum_id')
- ->where('dosen.nip',Auth::user()->username)
- ->where('periode_praktikum.praktikum_id',$request->praktikum_id)
- ->where('periode_praktikum.status', 1)
- ->first();
- return response()->json([
- "status" => "sukses",
- "pesan" => "Berhasil",
- "data" => [
- 'banyakModul' => $banyakModul[0]->hitung,
- 'modulMateri' => $modulMateri,
- 'idModul' => $idModul,
- 'praktikan' => $praktikan,
- 'idPraktikum' => $request->praktikum_id,
- 'nilai' => $nilaiSemuaPraktikan,
- 'idPeriodePraktikumDosen' => $idPeriodePraktikumDosen,
- ]
- ]);
- }
- public function store_nilai(Request $request)
- {
- $nilai = 0;
- for ($i = 0; $i < count($request->materi); $i++) {
- DB::table('detail_materi_dosen')
- ->join('penilaian_dosen', 'detail_materi_dosen.penilaian_dosen_id', 'penilaian_dosen.id')
- ->join('praktikan', 'penilaian_dosen.praktikan_id', 'praktikan.id')
- ->join('mahasiswa', 'praktikan.mahasiswa_id', 'mahasiswa.id')
- ->join('periode_praktikum_dosen', 'penilaian_dosen.periode_praktikum_dosen_id', 'periode_praktikum_dosen.id')
- ->join('dosen_laboratorium', 'periode_praktikum_dosen.dosen_laboratorium_id', 'dosen_laboratorium.id')
- ->join('dosen', 'dosen_laboratorium.dosen_id', 'dosen.id')
- ->join('periode_praktikum', 'praktikan.periode_praktikum_id', 'periode_praktikum.id')
- ->join('praktikum', 'periode_praktikum.praktikum_id', 'praktikum.id')
- ->join('modul_materi_dosen', 'detail_materi_dosen.modul_materi_dosen_id', 'modul_materi_dosen.id')
- ->join('materi', 'modul_materi_dosen.materi_id', 'materi.id')
- ->where('praktikum.id', $request->idPraktikum)
- ->where('periode_praktikum.status', 1)
- ->where('dosen.nip', Auth::user()->username)
- ->where('mahasiswa.npm', $request->npm)
- ->where('modul_materi_dosen.modul_dosen_id', $request->idModul)
- ->where('modul_materi_dosen.materi_id', $request->materiId[$i])
- ->update(['detail_materi_dosen.nilai_materi' => $request->materi[$i]]);
- $nilai = $nilai + $request->materi[$i];
- }
- $nilai = $nilai;
- $banyakModul = DB::select('select count(*) as hitung from
- (SELECT modul_dosen_id from modul_materi_dosen
- JOIN materi on modul_materi_dosen.materi_id = materi.id
- JOIN praktikum on materi.praktikum_id = praktikum.id
- JOIN modul_dosen on modul_dosen.id = modul_materi_dosen.modul_dosen_id
- JOIN periode_praktikum on periode_praktikum.id = modul_dosen.periode_praktikum_id
- where periode_praktikum.praktikum_id ='.$request->idPraktikum.'
- and periode_praktikum.status = 1
- GROUP by modul_dosen_id)
- as hitung;');
- $idModulMateri = DB::table('modul_materi_dosen')
- ->select('modul_materi_dosen.modul_dosen_id as idModul')
- ->join('modul_dosen', 'modul_materi_dosen.modul_dosen_id', 'modul_dosen.id')
- ->join('periode_praktikum', 'modul_dosen.periode_praktikum_id', 'periode_praktikum.id')
- ->join('praktikum', 'periode_praktikum.praktikum_id', 'praktikum.id')
- ->where('periode_praktikum.status', 1)
- ->where('praktikum_id', $request->idPraktikum)
- ->groupBy('idModul')
- ->get();
- $na = array();
- for ($i = 1; $i <= $banyakModul[0]->hitung; $i++) {
- $avg = Penilaian_dosen::select(DB::raw('avg(detail_materi_dosen.nilai_materi) as rata_rata'))
- ->join('praktikan', 'penilaian_dosen.praktikan_id', 'praktikan.id')
- ->join('mahasiswa', 'praktikan.mahasiswa_id', 'mahasiswa.id')
- ->join('periode_praktikum_dosen', 'penilaian_dosen.periode_praktikum_dosen_id', 'periode_praktikum_dosen.id')
- ->join('dosen_laboratorium', 'periode_praktikum_dosen.dosen_laboratorium_id', 'dosen_laboratorium.id')
- ->join('dosen', 'dosen_laboratorium.dosen_id', 'dosen.id')
- ->join('detail_materi_dosen', 'penilaian_dosen.id', 'detail_materi_dosen.penilaian_dosen_id')
- ->join('modul_materi_dosen', 'detail_materi_dosen.modul_materi_dosen_id', 'modul_materi_dosen.id')
- ->join('periode_praktikum', 'praktikan.periode_praktikum_id', 'periode_praktikum.id')
- ->join('praktikum', 'periode_praktikum.praktikum_id', 'praktikum.id')
- ->where('dosen.nip', Auth::user()->username)
- ->where('mahasiswa.npm', $request->npm)
- ->where('praktikum.id', $request->idPraktikum)
- ->where('periode_praktikum.status', 1)
- ->where('modul_materi_dosen.modul_dosen_id', $idModulMateri[$i - 1]->idModul)
- ->first();
- if ($avg) {
- array_push($na, $avg->rata_rata);
- } else {
- array_push($na, '0');
- }
- }
- $total = 0;
- for ($i = 0; $i <= count($na) - 1; $i++) {
- $tmp[$i] = $na[$i];
- $total = $total + $tmp[$i];
- }
- $hasil = $total / count($na);
- DB::table('penilaian_dosen')
- ->where('penilaian_dosen.id', $request->idpenilaian)
- ->update(['penilaian_dosen.nilai_akhir' => $hasil]);
- return response()->json(['status' => 200, 'nilai'=>number_format($nilai/count($request->materi),2)]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement