development #3

Merged
efbe merged 4 commits from development into master 2024-03-15 18:41:02 +07:00
18 changed files with 1577 additions and 51 deletions
Showing only changes of commit 335967bd45 - Show all commits

View File

@ -2,6 +2,7 @@
namespace App\Http\Controllers;
use App\Models\PengajuanDpuDpa;
use Illuminate\Http\Request;
@ -9,7 +10,8 @@ class AdminController extends Controller
{
public function index(){
return view('admin.index',['title'=> 'Admin Dashboard']);
$layanan_dpudpa = PengajuanDpuDpa::count();
return view('admin.index',['title'=> 'Admin Dashboard', 'layanan_dpudpa'=>$layanan_dpudpa]);
}

View File

@ -7,10 +7,13 @@
use App\Models\Mahasiswa;
use App\Models\PengajuanDpuDpa;
use App\Models\User;
use Barryvdh\DomPDF\Facade\Pdf;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
use PhpParser\Node\Expr\Cast\Object_;
use SimpleSoftwareIO\QrCode\Facades\QrCode;
use Spatie\Permission\Models\Role;
class LayananPengajuanDpuDpaController extends Controller
@ -40,8 +43,8 @@ public function tambah(){
//done
public function terima(Request $request){
$id = $request->id;
$countcaseid = PengajuanDpuDpa::where('updated_at','<=',Carbon::today())->count();
$caseid = "LS".date_format(date_create(),"ymd").$countcaseid+1;
$countcaseid = PengajuanDpuDpa::where('ttd_operator','!=','-')->count();
$caseid = "LS".date_format(date_create(),"ym").$countcaseid+1;
$cekData = PengajuanDpuDpa::where('caseid',$caseid)->first();
$data = PengajuanDpuDpa::where('id',$id)->first();
@ -170,6 +173,7 @@ public function destroy(Request $request){
return redirect()->route('layanan-dpudpa.index')->with('error','Gagal Hapus Data, coba cek data yang akan dihapus lalu coba lagi!');
}
//done
public function ettd($url, $caseid){
$role_untuk_ettd = ['dpu','dpa','kombi'];
$data = PengajuanDpuDpa::where('caseid','=',$caseid)
@ -216,6 +220,8 @@ public function ettd($url, $caseid){
return redirect()->route('laman-awal')->with(['error'=>'Invalid CASEID, Atau CaseID Tidak Ditemukan']);
}
//done
public function submitettd($url, $caseid, Request $request){
$role_untuk_ettd = ['dpu','dpa','kombi'];
$data = PengajuanDpuDpa::where('caseid','=',$caseid)->first();
@ -233,7 +239,7 @@ public function submitettd($url, $caseid, Request $request){
$data->ttd_dpu = Carbon::now();
$data->save();
$this->cek_dpa_dpu($caseid);
return redirect()->route('laman-awal')->with(['success'=>'Terimakasih Telah Melakukan Tanda Tangan']);
return redirect()->route('monitoring.caseid',['caseid'=>$caseid])->with(['success'=>'Terimakasih Telah Melakukan Tanda Tangan Pada CaseID '.$caseid]);
}
//jika ETTD Tidak sesuai Akan Dikembalikan Ke laman TTD Dengan error
else{
@ -253,7 +259,7 @@ public function submitettd($url, $caseid, Request $request){
$data->ttd_dpa = Carbon::now();
$data->save();
$this->cek_dpa_dpu($caseid);
return redirect()->route('laman-awal')->with(['success'=>'Terimakasih Telah Melakukan Tanda Tangan']);
return redirect()->route('monitoring.caseid',['caseid'=>$caseid])->with(['success'=>'Terimakasih Telah Melakukan Tanda Tangan Pada CaseID '.$caseid]);
}
//jika ETTD Tidak sesuai Akan Dikembalikan Ke laman TTD Dengan error
else{
@ -266,6 +272,9 @@ public function submitettd($url, $caseid, Request $request){
if($data->ttd_kombi!='-'){
return redirect()->route('layanan-dpudpa.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'CaseID Ini Sudah Pernah Anda Tandatangani Pada '.$data->ttd_kombi]);
}
if($data->ttd_dpu=='-' && $data->ttd_dpa =='-'){
return redirect()->route('layanan-dpudpa.ettd',['url'=>$url, 'caseid'=>$caseid])->with(['error'=>'DPU atau DPA Belum Tanda Tangan Pada CaseID ini']);
}
//ambil data ETTD sesuai url
$ttd = Role::findByName('Ketua Kombi')->users;
//jika Belum Pernah maka TTD akan diproses
@ -277,7 +286,7 @@ public function submitettd($url, $caseid, Request $request){
'id' => $data->id,
];
dispatch(new layananPengajuanDpuDpaJob($data));
return redirect()->route('laman-awal')->with(['success'=>'Terimakasih Telah Melakukan Tanda Tangan']);
return redirect()->route('monitoring.caseid',['caseid'=>$caseid])->with(['success'=>'Terimakasih Telah Melakukan Tanda Tangan Pada CaseID '.$caseid]);
}
//jika ETTD Tidak sesuai Akan Dikembalikan Ke laman TTD Dengan error
else{
@ -286,6 +295,55 @@ public function submitettd($url, $caseid, Request $request){
}
}
}
//belum
public function cetak($caseid){
$get_data = PengajuanDpuDpa::where('caseid',$caseid)->first();
if($get_data->ttd_kombi=='-'){
return redirect()->route('monitoring.caseid',['caseid'=>$caseid])->with('error','Data Belum Di TandaTangani Oleh Dosen Kombi, File Bisa didownload ketika Dosen Kombi sudah tanda tangan!');
}
//get Data Mahasiswa, DPU dan DPA
$data_dpu_dpa = PengajuanDpuDpa::where('caseid', $caseid)
->select(
'pengajuan_dpu_dpas.*',
'mahasiswas.nim',
'mahasiswas.nama',
'mahasiswas.bagian',
'mahasiswas.judul_seminar_proposal',
'dosen_dpu.nama_gelar as dosen_dpu_nama_gelar',
'dosen_dpu.nip as dosen_dpu_nip',
'dosen_dpa.nama_gelar as dosen_dpa_nama_gelar',
'dosen_dpa.nip as dosen_dpa_nip',
)
->join('mahasiswas','mahasiswas_id','=','mahasiswas.id')
->join('bagians','bagian','=','bagians.id')
->join('users as dosen_dpu','mahasiswas.dosen_dpu_id','=','dosen_dpu.id')
->join('users as dosen_dpa','mahasiswas.dosen_dpa_id','=','dosen_dpa.id')
->first();
//get Data Kombi
$data_kombi = Role::findByName('Ketua Kombi')->users;
$data = [
'title' => 'Cetak Kesediaan',
// 'date' => Carbon::now()->format('d-m-Y'),
'date' => $data_dpu_dpa->created_at->format('d-m-Y'),
'nama_mahasiswa' => $data_dpu_dpa->nama,
'nim' => $data_dpu_dpa->nim,
'bagian' => $data_dpu_dpa->nama_bagian,
'judul_skripsi' => $data_dpu_dpa->judul_seminar_proposal,
'dosen_dpu_nama_gelar' => $data_dpu_dpa->dosen_dpu_nama_gelar,
'dosen_dpu_nip' => $data_dpu_dpa->dosen_dpu_nip,
'dosen_dpu_qrcode' => base64_encode(QrCode::size(100)->generate($data_dpu_dpa->dosen_dpu_nama_gelar.'_TTD_'.$data_dpu_dpa->ttd_dpu)),
'dosen_dpa_nama_gelar' => $data_dpu_dpa->dosen_dpa_nama_gelar,
'dosen_dpa_nip' => $data_dpu_dpa->dosen_dpa_nama_gelar,
'dosen_dpa_qrcode' => base64_encode(QrCode::size(100)->generate($data_dpu_dpa->dosen_dpa_nama_gelar.'_TTD_'.$data_dpu_dpa->ttd_dpa)),
'dosen_kombi_nama_gelar' => $data_kombi[0]->nama_gelar,
'dosen_kombi_nip' => $data_kombi[0]->nip,
'dosen_kombi_qrcode' => base64_encode(QrCode::size(100)->generate($data_kombi[0]->nama_gelar.'_TTD_'.$data_dpu_dpa->ttd_kombi)),
];
$pdf = Pdf::loadView('layanan-dpudpa.cetak', $data);
return $pdf->setPaper('a4', 'potrait')->stream($caseid.'-Kesediaan Menjadi Dosen Pembimbing Tugas Akhir');
}
//cek apakah DPU dan DPU sudah Tanda tangan, jika sudah maka akan mengirim notifikasi ke Kombi
private function cek_dpa_dpu($caseid){
$status = PengajuanDpuDpa::where('caseid',$caseid)

View File

@ -0,0 +1,34 @@
<?php
namespace App\Http\Controllers;
use App\Models\PengajuanSempro;
use Illuminate\Http\Request;
class LayananSeminarProposal extends Controller
{
public function index(){
$data = PengajuanSempro::
select('pengajuan_sempros.*',
'mahasiswas.nim as nim',
'mahasiswas.nama as nama',
'dosen_dpu.nama_gelar as dpu_nama_gelar',
'dosen_dpa.nama_gelar as dpa_nama_gelar'
)
->join('mahasiswas','mahasiswas_id','=','mahasiswas.id')
->join('users as dosen_dpu','mahasiswas.dosen_dpu_id','=','dosen_dpu.id')
->join('users as dosen_dpa','mahasiswas.dosen_dpa_id','=','dosen_dpa.id')
->get();
return view('layanan-sempro.index',['title' => 'Pengajuan Seminar Proposal | Admin Dashboard','data' => $data]);
}
public function destroy(Request $request){
}
public function terima(Request $request){
}
}

View File

@ -0,0 +1,28 @@
<?php
namespace App\Http\Controllers;
use App\Models\PengajuanDpuDpa;
use Illuminate\Http\Request;
class MonitoringController extends Controller
{
public function caseid($caseid){
$data = PengajuanDpuDpa::where('caseid', $caseid)
->select(
'pengajuan_dpu_dpas.*',
'mahasiswas.nim',
'mahasiswas.nama',
'mahasiswas.judul_seminar_proposal',
'dosen_dpu.nama_gelar as dosen_dpu_nama_gelar',
'dosen_dpa.nama_gelar as dosen_dpa_nama_gelar',
)
->join('mahasiswas','mahasiswas_id','=','mahasiswas.id')
->join('users as dosen_dpu','mahasiswas.dosen_dpu_id','=','dosen_dpu.id')
->join('users as dosen_dpa','mahasiswas.dosen_dpa_id','=','dosen_dpa.id')
->first();
return view('monitoring.dpu_dpa',['title' => 'Monitoring Pengajuan DPU/DPA - '.$caseid,'data' => $data]);
}
}

View File

@ -5,7 +5,7 @@
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class SeminarProposal extends Model
class PengajuanSempro extends Model
{
use HasFactory;
}

View File

@ -7,11 +7,13 @@
"require": {
"php": "^8.1",
"barryvdh/laravel-debugbar": "^3.10",
"barryvdh/laravel-dompdf": "^2.0",
"guzzlehttp/guzzle": "^7.2",
"ixudra/curl": "^6.22",
"laravel/framework": "^10.10",
"laravel/sanctum": "^3.3",
"laravel/tinker": "^2.8",
"simplesoftwareio/simple-qrcode": "^4.2",
"spatie/laravel-permission": "^6.4"
},
"require-dev": {

535
composer.lock generated
View File

@ -4,8 +4,62 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "87ff4862c07e8d4eb3091ca090ed4ac9",
"content-hash": "abcc97396294b57200718bb94f348eef",
"packages": [
{
"name": "bacon/bacon-qr-code",
"version": "2.0.8",
"source": {
"type": "git",
"url": "https://github.com/Bacon/BaconQrCode.git",
"reference": "8674e51bb65af933a5ffaf1c308a660387c35c22"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Bacon/BaconQrCode/zipball/8674e51bb65af933a5ffaf1c308a660387c35c22",
"reference": "8674e51bb65af933a5ffaf1c308a660387c35c22",
"shasum": ""
},
"require": {
"dasprid/enum": "^1.0.3",
"ext-iconv": "*",
"php": "^7.1 || ^8.0"
},
"require-dev": {
"phly/keep-a-changelog": "^2.1",
"phpunit/phpunit": "^7 | ^8 | ^9",
"spatie/phpunit-snapshot-assertions": "^4.2.9",
"squizlabs/php_codesniffer": "^3.4"
},
"suggest": {
"ext-imagick": "to generate QR code images"
},
"type": "library",
"autoload": {
"psr-4": {
"BaconQrCode\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-2-Clause"
],
"authors": [
{
"name": "Ben Scholzen 'DASPRiD'",
"email": "mail@dasprids.de",
"homepage": "https://dasprids.de/",
"role": "Developer"
}
],
"description": "BaconQrCode is a QR code generator for PHP.",
"homepage": "https://github.com/Bacon/BaconQrCode",
"support": {
"issues": "https://github.com/Bacon/BaconQrCode/issues",
"source": "https://github.com/Bacon/BaconQrCode/tree/2.0.8"
},
"time": "2022-12-07T17:46:57+00:00"
},
{
"name": "barryvdh/laravel-debugbar",
"version": "v3.10.5",
@ -90,6 +144,83 @@
],
"time": "2024-02-15T10:45:45+00:00"
},
{
"name": "barryvdh/laravel-dompdf",
"version": "v2.0.1",
"source": {
"type": "git",
"url": "https://github.com/barryvdh/laravel-dompdf.git",
"reference": "9843d2be423670fb434f4c978b3c0f4dd92c87a6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/barryvdh/laravel-dompdf/zipball/9843d2be423670fb434f4c978b3c0f4dd92c87a6",
"reference": "9843d2be423670fb434f4c978b3c0f4dd92c87a6",
"shasum": ""
},
"require": {
"dompdf/dompdf": "^2.0.1",
"illuminate/support": "^6|^7|^8|^9|^10",
"php": "^7.2 || ^8.0"
},
"require-dev": {
"nunomaduro/larastan": "^1|^2",
"orchestra/testbench": "^4|^5|^6|^7|^8",
"phpro/grumphp": "^1",
"squizlabs/php_codesniffer": "^3.5"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.0-dev"
},
"laravel": {
"providers": [
"Barryvdh\\DomPDF\\ServiceProvider"
],
"aliases": {
"Pdf": "Barryvdh\\DomPDF\\Facade\\Pdf",
"PDF": "Barryvdh\\DomPDF\\Facade\\Pdf"
}
}
},
"autoload": {
"psr-4": {
"Barryvdh\\DomPDF\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Barry vd. Heuvel",
"email": "barryvdh@gmail.com"
}
],
"description": "A DOMPDF Wrapper for Laravel",
"keywords": [
"dompdf",
"laravel",
"pdf"
],
"support": {
"issues": "https://github.com/barryvdh/laravel-dompdf/issues",
"source": "https://github.com/barryvdh/laravel-dompdf/tree/v2.0.1"
},
"funding": [
{
"url": "https://fruitcake.nl",
"type": "custom"
},
{
"url": "https://github.com/barryvdh",
"type": "github"
}
],
"time": "2023-01-12T15:12:49+00:00"
},
{
"name": "brick/math",
"version": "0.11.0",
@ -214,6 +345,56 @@
],
"time": "2023-12-11T17:09:12+00:00"
},
{
"name": "dasprid/enum",
"version": "1.0.5",
"source": {
"type": "git",
"url": "https://github.com/DASPRiD/Enum.git",
"reference": "6faf451159fb8ba4126b925ed2d78acfce0dc016"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/DASPRiD/Enum/zipball/6faf451159fb8ba4126b925ed2d78acfce0dc016",
"reference": "6faf451159fb8ba4126b925ed2d78acfce0dc016",
"shasum": ""
},
"require": {
"php": ">=7.1 <9.0"
},
"require-dev": {
"phpunit/phpunit": "^7 | ^8 | ^9",
"squizlabs/php_codesniffer": "*"
},
"type": "library",
"autoload": {
"psr-4": {
"DASPRiD\\Enum\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-2-Clause"
],
"authors": [
{
"name": "Ben Scholzen 'DASPRiD'",
"email": "mail@dasprids.de",
"homepage": "https://dasprids.de/",
"role": "Developer"
}
],
"description": "PHP 7.1 enum implementation",
"keywords": [
"enum",
"map"
],
"support": {
"issues": "https://github.com/DASPRiD/Enum/issues",
"source": "https://github.com/DASPRiD/Enum/tree/1.0.5"
},
"time": "2023-08-25T16:18:39+00:00"
},
{
"name": "dflydev/dot-access-data",
"version": "v3.0.2",
@ -457,6 +638,68 @@
],
"time": "2022-12-15T16:57:16+00:00"
},
{
"name": "dompdf/dompdf",
"version": "v2.0.4",
"source": {
"type": "git",
"url": "https://github.com/dompdf/dompdf.git",
"reference": "093f2d9739cec57428e39ddadedfd4f3ae862c0f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/dompdf/dompdf/zipball/093f2d9739cec57428e39ddadedfd4f3ae862c0f",
"reference": "093f2d9739cec57428e39ddadedfd4f3ae862c0f",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-mbstring": "*",
"masterminds/html5": "^2.0",
"phenx/php-font-lib": ">=0.5.4 <1.0.0",
"phenx/php-svg-lib": ">=0.3.3 <1.0.0",
"php": "^7.1 || ^8.0"
},
"require-dev": {
"ext-json": "*",
"ext-zip": "*",
"mockery/mockery": "^1.3",
"phpunit/phpunit": "^7.5 || ^8 || ^9",
"squizlabs/php_codesniffer": "^3.5"
},
"suggest": {
"ext-gd": "Needed to process images",
"ext-gmagick": "Improves image processing performance",
"ext-imagick": "Improves image processing performance",
"ext-zlib": "Needed for pdf stream compression"
},
"type": "library",
"autoload": {
"psr-4": {
"Dompdf\\": "src/"
},
"classmap": [
"lib/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"LGPL-2.1"
],
"authors": [
{
"name": "The Dompdf Community",
"homepage": "https://github.com/dompdf/dompdf/blob/master/AUTHORS.md"
}
],
"description": "DOMPDF is a CSS 2.1 compliant HTML to PDF converter",
"homepage": "https://github.com/dompdf/dompdf",
"support": {
"issues": "https://github.com/dompdf/dompdf/issues",
"source": "https://github.com/dompdf/dompdf/tree/v2.0.4"
},
"time": "2023-12-12T20:19:39+00:00"
},
{
"name": "dragonmantank/cron-expression",
"version": "v3.3.3",
@ -2035,6 +2278,73 @@
],
"time": "2024-01-28T23:22:08+00:00"
},
{
"name": "masterminds/html5",
"version": "2.8.1",
"source": {
"type": "git",
"url": "https://github.com/Masterminds/html5-php.git",
"reference": "f47dcf3c70c584de14f21143c55d9939631bc6cf"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Masterminds/html5-php/zipball/f47dcf3c70c584de14f21143c55d9939631bc6cf",
"reference": "f47dcf3c70c584de14f21143c55d9939631bc6cf",
"shasum": ""
},
"require": {
"ext-dom": "*",
"php": ">=5.3.0"
},
"require-dev": {
"phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.7-dev"
}
},
"autoload": {
"psr-4": {
"Masterminds\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Matt Butcher",
"email": "technosophos@gmail.com"
},
{
"name": "Matt Farina",
"email": "matt@mattfarina.com"
},
{
"name": "Asmir Mustafic",
"email": "goetas@gmail.com"
}
],
"description": "An HTML5 parser and serializer.",
"homepage": "http://masterminds.github.io/html5-php",
"keywords": [
"HTML5",
"dom",
"html",
"parser",
"querypath",
"serializer",
"xml"
],
"support": {
"issues": "https://github.com/Masterminds/html5-php/issues",
"source": "https://github.com/Masterminds/html5-php/tree/2.8.1"
},
"time": "2023-05-10T11:58:31+00:00"
},
{
"name": "maximebf/debugbar",
"version": "v1.20.2",
@ -2601,6 +2911,96 @@
],
"time": "2023-02-08T01:06:31+00:00"
},
{
"name": "phenx/php-font-lib",
"version": "0.5.6",
"source": {
"type": "git",
"url": "https://github.com/dompdf/php-font-lib.git",
"reference": "a1681e9793040740a405ac5b189275059e2a9863"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/dompdf/php-font-lib/zipball/a1681e9793040740a405ac5b189275059e2a9863",
"reference": "a1681e9793040740a405ac5b189275059e2a9863",
"shasum": ""
},
"require": {
"ext-mbstring": "*"
},
"require-dev": {
"symfony/phpunit-bridge": "^3 || ^4 || ^5 || ^6"
},
"type": "library",
"autoload": {
"psr-4": {
"FontLib\\": "src/FontLib"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"LGPL-2.1-or-later"
],
"authors": [
{
"name": "Fabien Ménager",
"email": "fabien.menager@gmail.com"
}
],
"description": "A library to read, parse, export and make subsets of different types of font files.",
"homepage": "https://github.com/PhenX/php-font-lib",
"support": {
"issues": "https://github.com/dompdf/php-font-lib/issues",
"source": "https://github.com/dompdf/php-font-lib/tree/0.5.6"
},
"time": "2024-01-29T14:45:26+00:00"
},
{
"name": "phenx/php-svg-lib",
"version": "0.5.2",
"source": {
"type": "git",
"url": "https://github.com/dompdf/php-svg-lib.git",
"reference": "732faa9fb4309221e2bd9b2fda5de44f947133aa"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/dompdf/php-svg-lib/zipball/732faa9fb4309221e2bd9b2fda5de44f947133aa",
"reference": "732faa9fb4309221e2bd9b2fda5de44f947133aa",
"shasum": ""
},
"require": {
"ext-mbstring": "*",
"php": "^7.1 || ^8.0",
"sabberworm/php-css-parser": "^8.4"
},
"require-dev": {
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.5"
},
"type": "library",
"autoload": {
"psr-4": {
"Svg\\": "src/Svg"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"LGPL-3.0"
],
"authors": [
{
"name": "Fabien Ménager",
"email": "fabien.menager@gmail.com"
}
],
"description": "A library to read, parse and export to PDF SVG files.",
"homepage": "https://github.com/PhenX/php-svg-lib",
"support": {
"issues": "https://github.com/dompdf/php-svg-lib/issues",
"source": "https://github.com/dompdf/php-svg-lib/tree/0.5.2"
},
"time": "2024-02-07T12:49:40+00:00"
},
{
"name": "phpoption/phpoption",
"version": "1.9.2",
@ -3392,6 +3792,139 @@
],
"time": "2023-11-08T05:53:05+00:00"
},
{
"name": "sabberworm/php-css-parser",
"version": "v8.5.1",
"source": {
"type": "git",
"url": "https://github.com/MyIntervals/PHP-CSS-Parser.git",
"reference": "4a3d572b0f8b28bb6fd016ae8bbfc445facef152"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/MyIntervals/PHP-CSS-Parser/zipball/4a3d572b0f8b28bb6fd016ae8bbfc445facef152",
"reference": "4a3d572b0f8b28bb6fd016ae8bbfc445facef152",
"shasum": ""
},
"require": {
"ext-iconv": "*",
"php": ">=5.6.20"
},
"require-dev": {
"phpunit/phpunit": "^5.7.27"
},
"suggest": {
"ext-mbstring": "for parsing UTF-8 CSS"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "9.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Sabberworm\\CSS\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Raphael Schweikert"
},
{
"name": "Oliver Klee",
"email": "github@oliverklee.de"
},
{
"name": "Jake Hotson",
"email": "jake.github@qzdesign.co.uk"
}
],
"description": "Parser for CSS Files written in PHP",
"homepage": "https://www.sabberworm.com/blog/2010/6/10/php-css-parser",
"keywords": [
"css",
"parser",
"stylesheet"
],
"support": {
"issues": "https://github.com/MyIntervals/PHP-CSS-Parser/issues",
"source": "https://github.com/MyIntervals/PHP-CSS-Parser/tree/v8.5.1"
},
"time": "2024-02-15T16:41:13+00:00"
},
{
"name": "simplesoftwareio/simple-qrcode",
"version": "4.2.0",
"source": {
"type": "git",
"url": "https://github.com/SimpleSoftwareIO/simple-qrcode.git",
"reference": "916db7948ca6772d54bb617259c768c9cdc8d537"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/SimpleSoftwareIO/simple-qrcode/zipball/916db7948ca6772d54bb617259c768c9cdc8d537",
"reference": "916db7948ca6772d54bb617259c768c9cdc8d537",
"shasum": ""
},
"require": {
"bacon/bacon-qr-code": "^2.0",
"ext-gd": "*",
"php": ">=7.2|^8.0"
},
"require-dev": {
"mockery/mockery": "~1",
"phpunit/phpunit": "~9"
},
"suggest": {
"ext-imagick": "Allows the generation of PNG QrCodes.",
"illuminate/support": "Allows for use within Laravel."
},
"type": "library",
"extra": {
"laravel": {
"providers": [
"SimpleSoftwareIO\\QrCode\\QrCodeServiceProvider"
],
"aliases": {
"QrCode": "SimpleSoftwareIO\\QrCode\\Facades\\QrCode"
}
}
},
"autoload": {
"psr-4": {
"SimpleSoftwareIO\\QrCode\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Simple Software LLC",
"email": "support@simplesoftware.io"
}
],
"description": "Simple QrCode is a QR code generator made for Laravel.",
"homepage": "https://www.simplesoftware.io/#/docs/simple-qrcode",
"keywords": [
"Simple",
"generator",
"laravel",
"qrcode",
"wrapper"
],
"support": {
"issues": "https://github.com/SimpleSoftwareIO/simple-qrcode/issues",
"source": "https://github.com/SimpleSoftwareIO/simple-qrcode/tree/4.2.0"
},
"time": "2021-02-08T20:43:55+00:00"
},
{
"name": "spatie/laravel-permission",
"version": "6.4.0",

View File

@ -11,14 +11,19 @@
*/
public function up(): void
{
Schema::create('seminar_proposals', function (Blueprint $table) {
Schema::create('pengajuan_sempros', function (Blueprint $table) {
$table->id();
$table->string('caseid');
$table->foreignId('mahasiswas_id')->constrained();
$table->string('ttd_operator');
$table->string('ttd_dpu');
$table->string('ttd_dpa');
$table->string('ttd_kombi');
$table->string('bukti_transkrip_nilai');
$table->integer('nilai_plagiasi');
$table->string('bukti_hadir_sempro');
$table->string('bukti_turnitin');
$table->string('bukti_sister');
$table->string('bukti_lembar_monitoring');
$table->string('bukti_naskah_dosen_pembimbing');
$table->string('bukti_naskah_dosen_penguji');
$table->timestamps();
});
}
@ -28,6 +33,6 @@ public function up(): void
*/
public function down(): void
{
Schema::dropIfExists('seminar_proposals');
Schema::dropIfExists('pengajuan_sempros');
}
};

BIN
public/dist/img/logo-unej.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 KiB

View File

@ -17,12 +17,12 @@
<div class="container-fluid">
<div class="row mb-2">
<div class="col-sm-6">
<h1>Blank Page</h1>
<h1>Admin Dashboard</h1>
</div>
<div class="col-sm-6">
<ol class="breadcrumb float-sm-right">
<li class="breadcrumb-item"><a href="#">Home</a></li>
<li class="breadcrumb-item active">Blank Page</li>
<li class="breadcrumb-item active">Dashboard</li>
</ol>
</div>
</div>
@ -31,32 +31,22 @@
<!-- Main content -->
<section class="content">
<!-- Default box -->
<div class="card">
<div class="card-header">
<h3 class="card-title">Title</h3>
<div class="card-tools">
<button type="button" class="btn btn-tool" data-card-widget="collapse" title="Collapse">
<i class="fas fa-minus"></i>
</button>
<button type="button" class="btn btn-tool" data-card-widget="remove" title="Remove">
<i class="fas fa-times"></i>
</button>
<div class="row">
<div class="col-lg-3 col-6">
<!-- small box -->
<div class="small-box bg-info">
<div class="inner">
<h3>{{ $layanan_dpudpa }}</h3>
<p>Total Pengajuan DPU/DPA</p>
</div>
<div class="icon">
<i class="ion ion-bag"></i>
</div>
<a href="{{route('layanan-dpudpa.index')}}" class="small-box-footer">More info <i class="fas fa-arrow-circle-right"></i></a>
</div>
</div>
<div class="card-body">
Start creating your amazing application!
</div>
<!-- /.card-body -->
<div class="card-footer">
.
</div>
<!-- /.card-footer-->
</div>
<!-- /.card -->
</section>
<!-- /.content -->
</div>

View File

@ -0,0 +1,248 @@
<html lang="id">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>{{ $title }}</title>
<meta name="author" content="PINTU FARMASI"/>
<style type="text/css">
@page {
margin-top: 180px;
margin-left: 75px;
margin-right: 60px;
}
*{
font-size: 12pt;
}
#table-header{
width: 100%;
position: fixed;
/* right: px; */
top: -150px;
border-bottom: 3px solid #000;
}
#table-header td{
text-align: center;
font-family: 'Times New Roman', Times, Arial;
font-size: 14pt;
}
#table-header td p{
margin: 0;
}
.table-judul{
border:1.5px solid;
vertical-align:inherit;
text-align:center;
}
.table-konten{
border:1.5px solid;
padding:0.5em;
vertical-align:inherit;
text-align:left;
}
.kolom-ttd{
border:1.5px solid;
padding:0;
vertical-align:inherit;
text-align:center;
}
/* p {
color: black; font-family:"Times New Roman", serif; font-style: normal; font-weight: normal; text-decoration: none; font-size: 12pt; margin:0pt;
}
h1 {
color: black; font-family:"Times New Roman",
serif;
font-style: normal;
font-weight: bold;
text-decoration: none;
font-size: 12pt;
}
.s1 { color: black; font-family:"Times New Roman", serif; font-style: normal; font-weight: bold; text-decoration: none; font-size: 12pt; }
.s2 { color: black; font-family:"Times New Roman", serif; font-style: normal; font-weight: normal; text-decoration: none; font-size: 12pt; }
table, tbody {vertical-align: top; overflow: visible; } */
</style>
</head>
<body>
<table border="0" id="table-header">
<tr>
<td><img src="{{ asset('/') }}dist/img/logo-unej.png" alt="LOGOUNEJ" width="125px"></td>
<td>
<p>KEMENTRIAN PENDIDIKAN, KEBUDAYAAN,<br/>
RISET, DAN TEKNOLOGI</p>
<p style="font-size:16pt; font-weight:bold;">UNIVERSITAS JEMBER</p>
<p style="font-weight:bold;">FAKULTAS FARMASI</p>
<p style="font-size:10pt;">Jalan Kalimantan I Nomor 2 Kampus Tegal Boto Kotak Pos 159 Jember 68121<br/>
Telepon/Faximile (0331) 324736 <br/>
Email: farmasi@unej.ac.id</p>
</td>
</tr>
</table>
<h4 style="text-align: center;">FORMULIR KESEDIAAN MENJADI DOSEN PEMBIMBING TUGAS AKHIR</h4>
<p style="margin-bottom: 0;">Kami mahasiswa</p>
<table border="0" style="margin-top:5px; padding-left:1em;">
<tr>
<td style="max-width: 2em;"> Nama</td>
<td style="max-width: 0.5em;">:</td>
<td style="max-width: 35em; text-align:left; margin:0; padding:0;"> {{ $nama_mahasiswa }}</td>
</tr>
<tr>
<td> NIM</td>
<td>:</td>
<td style="max-width: 35em; text-align:left; margin:0; padding:0;"> {{ $nim }}</td>
</tr>
<tr>
<td> Bagian</td>
<td>:</td>
<td style="max-width: 35em; text-align:left; margin:0; padding:0;"> {{ $bagian }}</td>
</tr>
</table>
<p style="margin-top: 10px;">Telah menghubungi Calon Dosen Pembimbing dengan penelitian sebagai berikut:</p>
<table style="" cellspacing="0">
<tr style="height:1em">
<td class="table-judul" width="40%">
Judul/Topik Tugas Akhir
</td>
<td class="table-judul" width="40%">
Dosen Pembimbing
</td>
<td class="table-judul" width="20%">
Tanda Tangan kesediaan
</td>
</tr>
<tr style="height:114pt">
<td class="table-konten" rowspan="2">
{{ $judul_skripsi }}
</td>
<td class="table-konten" >
1. Nama : {{ $dosen_dpu_nama_gelar }}<br>
NIP : {{ $dosen_dpu_nip }}<br>
Pangkat/Gol/Jab : -<br>
<br>
<strong>Sebagai DPU</strong>
</td>
<td class="kolom-ttd">
<img src="data:image/png;base64, {!! $dosen_dpu_qrcode !!}" alt="">
</td>
</tr>
<tr>
<td class="table-konten">
1. Nama : {{ $dosen_dpa_nama_gelar }}<br>
NIP : {{ $dosen_dpa_nip }}<br>
Pangkat/Gol/Jab : -<br>
<br>
<strong>Sebagai DPA</strong>
</td>
<td class="kolom-ttd">
<img src="data:image/png;base64, {!! $dosen_dpa_qrcode !!}" alt="">
</td>
</tr>
</table>
<table border="0" style="padding-top:7em; padding-right:5em" cellspacing="0">
<tr>
<td width="400px">Mengetahui,</td>
<td>Jember, {{ $date }}</td>
</tr>
<tr>
<td style="text-align: left">Ketua Komisi Bimbingan</td>
<td style="text-align: left">Mahasiswa Pengusul</td>
</tr>
<tr>
<td style="height:120px; text-align: left; vertical-align:bottom;">
<img src="data:image/png;base64, {!! $dosen_kombi_qrcode !!}" alt="">
</td>
</tr>
<tr>
<td style="text-align: left;">{{ $dosen_kombi_nama_gelar }}</td>
<td style="text-align: left;">{{ $nama_mahasiswa }}</td>
</tr>
<tr>
<td style="text-align: left">NIP. {{ $dosen_kombi_nip }}</td>
<td style="text-align: left">NIM. {{ $nim }}<td>
</tr>
</table>
<p style="page-break-after: always;"></p>
<h4 style="text-align: center;">
SURAT PERNYATAAN<br/>
KESANGGUPAN MENYELESAIKAN SKRIPSI</h4>
<p style="margin-bottom: 0;">Yang bertanda tangan dibawah ini</p>
<table border="0" style="margin-top:5px; padding-left:1em;">
<tr>
<td style="width: 7em;"> Nama</td>
<td style="max-width: 0.5em;">:</td>
<td> {{ $nama_mahasiswa }}</td>
</tr>
<tr>
<td> NIM</td>
<td>:</td>
<td> {{ $nim }}</td>
</tr>
<tr>
<td> Bagian</td>
<td>:</td>
<td > {{ $bagian }}</td>
</tr>
<tr>
<td style="vertical-align: text-top;"> Judul Skripsi</td>
<td style="vertical-align: text-top;">:</td>
<td rowspan="2" style="vertical-align: text-top;"> {{ $judul_skripsi }}</td>
</tr>
</table>
<p style="margin-top: 10px; text-align:justify;">Bersama ini saya menyatakan bahwa saya sanggup menyelesaikan skripsi selambat-lambatnya selama 4 (empat) semester terhitung sejak pemrograman skripsi melalui SISTER. Saya sanggup menerima sanksi berupa pembatalan program skripsi, sehingga harus pemrograman skripsi kembali, jika tidak dapat menyelesaikan skripsi sesuai dengan batas waktu yang ditetapkan.
</p>
<p style="margin-top: 10px; text-align:justify;">Demikian surat pernyataan ini saya buat dengan penuh kesadaran untuk dapat digunakan sebagaimana mestinya.</p>
<table border="0" style="padding-top:1em;" cellspacing="0">
<tr>
<td width="400px"></td>
<td>Jember, {{ $date }}</td>
</tr>
<tr>
<td style="text-align: left"></td>
<td style="text-align: left">Pembuat Pernyataan</td>
</tr>
<tr>
<td style="height:100px; text-align: left; vertical-align:bottom;">
</td>
<td style="font-size: 8pt; vertical-align:inherit">
materai 10.000
</td>
</tr>
<tr>
<td style="text-align: left;"></td>
<td style="text-align: left;">{{ $nama_mahasiswa }}</td>
</tr>
<tr>
<td style="text-align: left"></td>
<td style="text-align: left">NIM. {{ $nim }}<td>
</tr>
</table>
<table border="0" style="padding-top:2em;" cellspacing="0">
<tr>
<td colspan="2" style="text-align: center">Mengetahui</td>
</tr>
<tr>
<td colspan="2" style="text-align: center">Tim Pembimbing</td>
</tr>
<tr>
<td width="400px" style="text-align: left">Dosen Pembimbing Utama</td>
<td style="text-align: left">Dosen Pembimbing Anggota</td>
</tr>
<tr>
<td style="height:100px; text-align: left; vertical-align:bottom;">
<img src="data:image/png;base64, {!! $dosen_dpu_qrcode !!}" alt="">
</td>
<td style="height:120px; text-align: left; vertical-align:bottom;">
<img src="data:image/png;base64, {!! $dosen_dpa_qrcode !!}" alt="">
</td>
</tr>
<tr>
<td style="text-align: left;">{{ $dosen_dpu_nama_gelar }}</td>
<td style="text-align: left;">{{ $dosen_dpa_nama_gelar }}</td>
</tr>
<tr>
<td style="text-align: left">NIP. {{ $dosen_dpu_nip }}</td>
<td style="text-align: left">NIP. {{ $dosen_dpu_nip }}<td>
</tr>
</table>
</body>
</html>

View File

@ -79,11 +79,12 @@
<td>{{ $datas->dpu_nama_gelar }}</td>
<td>{{ $datas->dpa_nama_gelar }}</td>
<td class="text-center">
<button class="btn btn-primary" data-toggle="modal" data-target="#LY{{ $datas->id }}" >Details</button> |
<button class="btn btn-primary" data-toggle="modal" data-target="#LY{{ $datas->id }}" >Details</button>
@if($datas->ttd_operator=="-")
<button class="btn btn-success" data-toggle="modal" data-target="#LY{{ $datas->id }}" >Terima</button> |
| <button class="btn btn-success" data-toggle="modal" data-target="#LY{{ $datas->id }}" >Terima</button> |
<button class="btn btn-danger" data-toggle="modal" data-target="#LYDelete{{ $datas->id }}" >Tolak</button>
@endif
<button class="btn btn-danger" data-toggle="modal" data-target="#LYDelete{{ $datas->id }}" >Tolak</button></td>
</td>
</tr>
<!-- Modal Detail dan Terima -->
<div class="modal fade" id="LY{{$datas->id}}">
@ -108,8 +109,16 @@
<input type="text" class="form-control form-control-border" readonly value="{{ $datas->dpa_nama_gelar }}">
<label for="dosen_kombi">Kombi: </label>
<input type="text" class="form-control form-control-border" readonly value="{{ $datas->ttd_kombi === '-' ? 'Belum Tanda Tangan' : 'Telah TTD Pada '.$datas->ttd_kombi }}">
<label for="file_transkrip">Lihat File Transkrip:</label>
<a href="{{asset('storage')}}/{{ $datas->nim }}/{{ $datas->bukti_transkrip_nilai }}" target="_blank"><input type="text" class="form-control form-control-border" readonly value="Klik Disini"></a>
</div>
</div>
<div class="row mt-3">
<div class="col">
<label for="file_transkrip">Lihat File Transkrip<br>
<a href="{{asset('storage')}}/{{ $datas->nim }}/{{ $datas->bukti_transkrip_nilai }}" target="_blank" class="btn btn-primary">Klik Disini</a>
</div>
<div class="col">
<label for="file_transkrip">Cetak Surat Pernyataan<br>
<a href="{{ route('layanan-dpudpa.cetak',['caseid'=>$datas->caseid]) }}" target="_blank" class="btn btn-success">Klik Disini</a>
</div>
</div>
</div>

View File

@ -0,0 +1,171 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{ $title }}</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback">
<link rel="stylesheet" href="{{asset('/')}}plugins/fontawesome-free/css/all.min.css">
<link rel="stylesheet" href="{{asset('/')}}dist/css/adminlte.min.css?v=3.2.0">
<body class="hold-transition layout-top-nav">
<div class="content-wrapper">
<div class="content-header">
<div class="container">
<div class="text-center">
<h1 class="m-0"> {{ $title }} {{$jenis}}</h1>
</div>
</div>
</div>
@if($jenis!="Komisi Bimbingan")
<div class="content">
<div class="container">
<div class="card card-widget widget-user">
<div class="widget-user-header text-white" style="background: url('{{asset('/')}}dist/img/photo1.png') center center;">
<h3 class="widget-user-username text-right">{{$data->caseid}}</h3>
<h5 class="widget-user-desc text-right">{{$jenis}}</h5>
</div>
<div class="card-footer">
<div class="row">
<div class="col-sm-4 border-right">
<div class="description-block" style="margin-top: 0px; overflow: hidden;">
<h5 class="description-header">CaseID</h5>
<span class="description-text">{{$data->caseid}}</span>
</div>
</div>
<div class="col-sm-4 border-right">
<div class="description-block" style="margin-top: 0px; overflow: hidden;">
<h5 class="description-header">Nama Mahasiswa</h5>
<span class="description-text">{{ $data->nama}}</span>
</div>
</div>
<div class="col-sm-4">
<div class="description-block" style="margin-top: 0px; overflow: hidden;">
<h5 class="description-header">Tanda Tangan Oleh</h5>
<span class="description-text">@if(request('url')=="dpu") {{ $data->dosen_dpu_nama_gelar }} @elseif(request('url')=="dpa") {{ $data->dosen_dpa_nama_gelar }}@endif</span>
</div>
</div>
</div>
</div>
<div class="card-body">
@if(session('success'))
<div class="alert alert-success">
<ul>
<li>{{ session('success') }}</li>
</ul>
</div>
@endif
@if(session('error'))
<div class="alert alert-danger">
<ul>
<li>{{ session('error') }}</li>
</ul>
</div>
@endif
<form action="{{ route('layanan-dpudpa.submitettd',['url'=> request('url'), 'caseid'=>$data->caseid]) }}" method="post">
@csrf
<label for="caseid">CASEID :</label>
<input type="text" name="caseid" id="caseid" class="form-control" readonly value="{{ $data->caseid}}">
<label for="nama">Nama Mahasiswa :</label>
<input type="text" name="nama" id="nama" class="form-control" readonly value="{{ $data->nama}}">
<label for="nim">NIM Mahasiswa :</label>
<input type="text" name="nim" id="nim" class="form-control" readonly value="{{ $data->nim}}">
<label for="judul_seminar_proposal">Judul Skripsi :</label>
<input type="text" name="judul_seminar_proposal" id="judul_seminar_proposal" class="form-control" readonly value="{{ $data->judul_seminar_proposal}}">
<label for="ettd">Masukkan E-TTD {{ $jenis }} :
</label><input type="text" name="ettd" id="ettd" class="form-control" placeholder="Masukkan ETTD Anda Disini...">
<div class="float-right mt-4">
<button type="submit" class="btn btn-success">Submit</button>
</div>
</form>
</div>
</div>
</div>
</div>
@elseif($jenis=="Komisi Bimbingan")
<div class="content">
<div class="container">
<div class="card card-widget widget-user">
<div class="widget-user-header text-white" style="background: url('{{asset('/')}}dist/img/photo1.png') center center;">
<h3 class="widget-user-username text-right">{{$data['caseid']}}</h3>
<h5 class="widget-user-desc text-right">{{$jenis}}</h5>
</div>
<div class="card-footer">
<div class="row">
<div class="col-sm-4 border-right">
<div class="description-block" style="margin-top: 0px; overflow: hidden;">
<h5 class="description-header">CaseID</h5>
<span class="description-text">{{$data['caseid']}}</span>
</div>
</div>
<div class="col-sm-4 border-right">
<div class="description-block" style="margin-top: 0px; overflow: hidden;">
<h5 class="description-header">Nama Mahasiswa</h5>
<span class="description-text">{{ $data['nama']}}</span>
</div>
</div>
<div class="col-sm-4">
<div class="description-block" style="margin-top: 0px; overflow: hidden;">
<h5 class="description-header">Tanda Tangan Oleh</h5>
<span class="description-text">{{$data['dosen_kombi_nama_gelar']}}</span>
</div>
</div>
</div>
</div>
<div class="card-body">
@if(session('success'))
<div class="alert alert-success">
<ul>
<li>{{ session('success') }}</li>
</ul>
</div>
@endif
@if(session('error'))
<div class="alert alert-danger">
<ul>
<li>{{ session('error') }}</li>
</ul>
</div>
@endif
<form action="{{ route('layanan-dpudpa.submitettd',['url'=> request('url'), 'caseid'=>$data['caseid']]) }}" method="post">
@csrf
<label for="caseid">CASEID :</label>
<input type="text" name="caseid" id="caseid" class="form-control" readonly value="{{ $data['caseid']}}">
<label for="nama">Nama Mahasiswa :</label>
<input type="text" name="nama" id="nama" class="form-control" readonly value="{{ $data['nama']}}">
<label for="nim">NIM Mahasiswa :</label>
<input type="text" name="nim" id="nim" class="form-control" readonly value="{{ $data['nim']}}">
<label for="judul_seminar_proposal">Judul Skripsi :</label>
<input type="text" name="judul_seminar_proposal" id="judul_seminar_proposal" class="form-control" readonly value="{{ $data['judul_seminar_proposal']}}">
<label for="ettd">Masukkan E-TTD {{ $jenis }} :
</label><input type="text" name="ettd" id="ettd" class="form-control" placeholder="Masukkan ETTD Anda Disini...">
<div class="float-right mt-4">
<button type="submit" class="btn btn-success">Submit</button>
</div>
</form>
</div>
</div>
</div>
</div>
@endif
</div>
@include('layout.navbars.footer')
</div>
<script src="{{asset('/')}}plugins/jquery/jquery.min.js"></script>
<script src="{{asset('/')}}plugins/bootstrap/js/bootstrap.bundle.min.js"></script>
<script src="{{asset('/')}}dist/js/adminlte.min.js?v=3.2.0"></script>
</body>
</html>

View File

@ -0,0 +1,226 @@
<!-- Extend Layout -->
@extends('layout.app')
<!-- Add Custom CSS -->
@push('css')
<link rel="stylesheet" href="{{asset('/')}}plugins/datatables-bs4/css/dataTables.bootstrap4.min.css">
<link rel="stylesheet" href="{{asset('/')}}plugins/datatables-responsive/css/responsive.bootstrap4.min.css">
<link rel="stylesheet" href="{{asset('/')}}plugins/datatables-buttons/css/buttons.bootstrap4.min.css">
@endpush
<!-- Add Content Here -->
@section('content')
<!-- Include Sidebar -->
@include('layout.navbars.sidebar')
<div class="content-wrapper">
<!-- Main content -->
<section class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-sm-6">
<h1>Pengajuan DPU / DPA</h1>
</div>
<div class="col-sm-6">
<ol class="breadcrumb float-sm-right">
<li class="breadcrumb-item"><a href="{{ route('admin.dashboard') }}">Admin</a></li>
<li class="breadcrumb-item active">Pengajuan DPU / DPA</li>
</ol>
</div>
</div>
</div><!-- /.container-fluid -->
</section>
<section class="content">
<div class="card">
<!-- /.card-header -->
<div class="card-body">
<div class="alert alert-info alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h5><i class="icon fas fa-info"></i> Perhatian!</h5>
<span >CaseID Akan muncul ketika pengajuan telah diterima untuk menghindari data duplikat untuk mahasiswa yang sama.</span>
</div>
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error )
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
@if(session('success'))
<div class="alert alert-success">
<ul>
<li>{{ session('success') }}</li>
</ul>
</div>
@endif
@if(session('error'))
<div class="alert alert-danger">
<ul>
<li>{{ session('error') }}</li>
</ul>
</div>
@endif
<table id="example1" class="table table-bordered table-striped">
<thead>
<tr>
<th>CaseID</th>
<th>NIM</th>
<th>DPU</th>
<th>DPA</th>
<th>Action</th>
</tr>
</thead>
<tbody>
@foreach ($data as $datas)
<tr>
<td>{{ $datas->caseid }}</td>
<td>{{ $datas->nim }} </td>
<td>{{ $datas->dpu_nama_gelar }}</td>
<td>{{ $datas->dpa_nama_gelar }}</td>
<td class="text-center">
<button class="btn btn-primary" data-toggle="modal" data-target="#LY{{ $datas->id }}" >Details</button> |
@if($datas->ttd_operator=="-")
<button class="btn btn-success" data-toggle="modal" data-target="#LY{{ $datas->id }}" >Terima</button> |
<button class="btn btn-danger" data-toggle="modal" data-target="#LYDelete{{ $datas->id }}" >Tolak</button>
@endif
</td>
</tr>
<!-- Modal Detail dan Terima -->
<div class="modal fade" id="LY{{$datas->id}}">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Details Data <b>{{ $datas->caseid }}</b></h4>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div class="row">
<div class="col">
<label for="nim">NIM:</label>
<input type="text" class="form-control form-control-border" readonly value="{{ $datas->nim }}">
<label for="nama">Nama Mahasiswa:</label>
<input type="text" class="form-control form-control-border" readonly value="{{ $datas->nama }}">
<label for="dosen_dpu">Dosen DPU: {{ $datas->ttd_dpu === '-' ? 'Belum Tanda Tangan' : 'Telah TTD Pada '.$datas->ttd_dpu }}</label>
<input type="text" class="form-control form-control-border" readonly value="{{ $datas->dpu_nama_gelar }}">
<label for="dosen_dpa">Dosen DPA: {{ $datas->ttd_dpa === '-' ? 'Belum Tanda Tangan' : 'Telah TTD Pada '.$datas->ttd_dpa }}</label>
<input type="text" class="form-control form-control-border" readonly value="{{ $datas->dpa_nama_gelar }}">
<label for="dosen_kombi">Kombi: </label>
<input type="text" class="form-control form-control-border" readonly value="{{ $datas->ttd_kombi === '-' ? 'Belum Tanda Tangan' : 'Telah TTD Pada '.$datas->ttd_kombi }}">
<label for="file_transkrip">Lihat File Transkrip:</label>
<a href="{{asset('storage')}}/{{ $datas->nim }}/{{ $datas->bukti_transkrip_nilai }}" target="_blank"><input type="text" class="form-control form-control-border" readonly value="Klik Disini"></a>
</div>
</div>
</div>
<div class="modal-footer justify-content-between">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<span>{{$datas->caseid}}</span>
@if($datas->ttd_operator=="-")
<form action="{{ route('layanan-dpudpa.terima')}}" method="post">
@csrf
<input type="hidden" name="id" value="{{$datas->id}}">
<button type="submit" class="btn btn-success">Terima</button>
</form>
@endif
</form>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
<!-- /.modal-Delete -->
<div class="modal fade" id="LYDelete{{$datas->id}}">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Apa Anda Yakin Ingin Menghapus Data : <b>{{ $datas->caseid }}</b></h4>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div class="alert alert-info alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h5><i class="icon fas fa-info"></i> Perhatian!</h5>
<span >Alasan yang Dimasukkan Disini, Akan dikirimkan melalui Email Kepada Mahasiswa Terkait.</span>
</div>
<form action="{{ route('layanan-dpudpa.destroy') }}" method="post">
@csrf @method('DELETE')
<div class="row">
<div class="col">
<label for="alasan">Alasan:</label>
<textarea name="alasan" class="form-control" id="alasan" cols="30" rows="10"
placeholder="Masukkan Alasan Disini
Masukkan Alasan Disini"></textarea>
<input type="hidden" name="id" value="{{$datas->id}}">
</div>
</div>
</div>
<div class="modal-footer justify-content-between">
<button type="button" class="btn btn-default" data-dismiss="modal">Batal</button>
<button type="submit" class="btn btn-danger">Kirim</button>
</form>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
@endforeach
</tbody>
<tfoot>
<tr>
<th>CaseID</th>
<th>NIM</th>
<th>DPU</th>
<th>DPA</th>
<th>Action</th>
</tr>
</tfoot>
</table>
</div>
<!-- /.card-body -->
</div>
<!-- /.card -->
</section>
<!-- /.content -->
</div>
@endsection
<!-- Add Custom JS -->
@push('js')
<!-- DataTables & Plugins -->
<script src="{{asset('/')}}plugins/datatables/jquery.dataTables.min.js"></script>
<script src="{{asset('/')}}plugins/datatables-bs4/js/dataTables.bootstrap4.min.js"></script>
<script src="{{asset('/')}}plugins/datatables-responsive/js/dataTables.responsive.min.js"></script>
<script src="{{asset('/')}}plugins/datatables-responsive/js/responsive.bootstrap4.min.js"></script>
<script src="{{asset('/')}}plugins/datatables-buttons/js/dataTables.buttons.min.js"></script>
<script src="{{asset('/')}}plugins/datatables-buttons/js/buttons.bootstrap4.min.js"></script>
<script src="{{asset('/')}}plugins/jszip/jszip.min.js"></script>
<script src="{{asset('/')}}plugins/pdfmake/pdfmake.min.js"></script>
<script src="{{asset('/')}}plugins/pdfmake/vfs_fonts.js"></script>
<script src="{{asset('/')}}plugins/datatables-buttons/js/buttons.html5.min.js"></script>
<script src="{{asset('/')}}plugins/datatables-buttons/js/buttons.print.min.js"></script>
<script src="{{asset('/')}}plugins/datatables-buttons/js/buttons.colVis.min.js"></script>
<script>
$(function () {
$("#example1").DataTable({
"responsive": true, "lengthChange": false, "autoWidth": false,
"buttons": [{
// New button configuration
text: 'Tambah Data', // Replace with your desired button text
action: function ( e, dt, node, config ) {
// Perform your custom action here, e.g., open a new tab with the external link
window.open("{{ route('layanan-dpudpa.tambah')}}", '_blank');
}
},"csv", "excel", "pdf", "print", "colvis"]
}).buttons().container().appendTo('#example1_wrapper .col-md-6:eq(0)');
});
</script>
@endpush

View File

@ -0,0 +1,117 @@
<!-- Extend Layout -->
@extends('layout.app_guest',['title' => 'Pengajuan DPU / DPA'])
@section('content')
<!-- Main content -->
<section class="content">
<div class="container-fluid">
<!-- SELECT2 EXAMPLE -->
<div class="card card-default">
<div class="card-header">
<h3 class="card-title">Pengajuan Kesediaan DPU / DPA</h3>
</div>
<!-- /.card-header -->
<div class="card-body">
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error )
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
@if(session('success'))
<div class="alert alert-success">
<ul>
<li>{{ session('success') }}</li>
</ul>
</div>
@endif
@if(session('error'))
<div class="alert alert-danger">
<ul>
<li>{{ session('error') }}</li>
</ul>
</div>
@endif
<form action="{{ route('layanan-dpudpa.store') }}" method="post" enctype="multipart/form-data">
@csrf
<div class="row">
<div class="col">
<label for="nim">NIM Mahasiswa</label>
<input type="text" name="nim" id="nim" class="form-control" placeholder="Masukkan NIM Mahasiswa" value="{{old('nim')}}" required>
<label for="nama">Nama Mahasiswa</label>
<input type="text" name="nama" id="nama" class="form-control" placeholder="Masukkan Nama Mahasiswa" value="{{old('nama')}}" required>
<label for="nomor_hp">Nomor Handphone Mahasiswa (WhatsApp)</label>
<input type="text" name="nomor_hp" id="nomor_hp" class="form-control" placeholder="Masukkan Nomor Handphone Mahasiswa (WhatsApp)" value="{{old('nomor_hp')}}" required>
<label for="email">Email Mahasiswa</label>
<input type="text" name="email" id="email" class="form-control" placeholder="Masukkan Email Mahasiswa" value="{{old('email')}}" required>
<label for="bagian">Bagian Lab:</label>
<select class="form-control select2" style="width: 100%;" id="bagian" name="bagian">
<option selected>Pilih Laboratorium</option>
<option value="1">Farmasi Klinik Dan Komunitas</option>
<option value="2">Farmakologi Dan Hewan Coba</option>
<option value="3">Farmakognosi dan Fitokimia</option>
<option value="4">Mikrobiologi dan Bioteknologi Farmasi</option>
<option value="5">Farmasetika</option>
<option value="6">Teknologi Farmasi</option>
<option value="7">Kimia Analisis</option>
<option value="8">Kimia Medisinal</option>
</select>
</div>
<!-- /.col -->
</div>
<!-- /.row -->
<div class="row">
<div class="col">
<div class="form-group">
<label for="dosen_dpu">Dosen Pembimbing Utama</label>
<select class="form-control select2" style="width: 100%;" id="dosen_dpu" name="dosen_dpu">
<option selected>Pilih Dosen Pembimbing Utama</option>
@foreach ($dosen as $item)
<option value="{{$item->id}}" {{ old('dosen_dpu') === $item->id ? 'selected' : '' }}>{{ $item->nama_gelar }}</option>
@endforeach
</select>
</div>
<!-- /.form-group -->
</div>
<div class="col">
<div class="form-group">
<label for="dosen_dpa">Dosen Pembimbing Anggota</label>
<select class="form-control select2" style="width: 100%;" id="dosen_dpa" name="dosen_dpa">
<option>Pilih Dosen Pembimbing Anggota</option>
@foreach ($dosen as $item)
<option value="{{$item->id}}" {{ old('dosen_dpa') === $item->id ? 'selected' : '' }}>{{ $item->nama_gelar }}</option>
@endforeach
</select>
</div>
<!-- /.form-group -->
</div>
<!-- /.col -->
</div>
<!-- /.row -->
<div class="row">
<div class="col">
<label for="judul_seminar_proposal">Judul Skripsi / Tugas Akhir</label>
<input type="text" name="judul_seminar_proposal" id="judul_seminar_proposal" class="form-control" placeholder="Masukkan Judul Skripsi / Tugas Akhir yang Diajukan" value="{{old('judul_seminar_proposal')}}" required>
<label for="file_transkrip">Transkrip Nilai (*File Bertentuk PDF, Dan Ukuran Maksimal file :4Mb)</label>
<input type="file" name="file_transkrip" id="file_transkrip" class="form-control" required>
</div>
</div>
<div class="row">
<div class="col py-3">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</div>
</form>
</div>
</div>
<!-- /.card -->
</div>
<!-- /.container-fluid -->
</section>
<!-- /.content -->
@endsection

View File

@ -5,12 +5,6 @@
<li class="nav-item">
<a class="nav-link" data-widget="pushmenu" href="#" role="button"><i class="fas fa-bars"></i></a>
</li>
<li class="nav-item d-none d-sm-inline-block">
<a href="../../index3.html" class="nav-link">Home</a>
</li>
<li class="nav-item d-none d-sm-inline-block">
<a href="#" class="nav-link">Contact</a>
</li>
</ul>
<!-- Right navbar links -->

View File

@ -0,0 +1,101 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{ $title }}</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback">
<link rel="stylesheet" href="{{asset('/')}}plugins/fontawesome-free/css/all.min.css">
<link rel="stylesheet" href="{{asset('/')}}dist/css/adminlte.min.css?v=3.2.0">
<body class="hold-transition layout-top-nav">
<div class="content-wrapper">
<div class="content-header">
<div class="container">
<div class="text-center">
<h1 class="m-0"> {{ $title }}</h1>
</div>
</div>
</div>
<div class="content">
<div class="container">
<div class="card card-widget widget-user">
<div class="widget-user-header text-white" style="background: url('{{asset('/')}}dist/img/photo1.png') center center;">
<h5 class="widget-user-desc text-right">Monitoring</h5>
<h3 class="widget-user-username text-right">{{$data->caseid}}</h3>
</div>
<div class="card-footer">
<div class="row">
<div class="col-sm-4 border-right">
<div class="description-block" style="margin-top: 0px; overflow: hidden;">
<h5 class="description-header">CaseID</h5>
<span class="description-text">{{$data->caseid}}</span>
</div>
</div>
<div class="col-sm-4 border-right">
<div class="description-block" style="margin-top: 0px; overflow: hidden;">
<h5 class="description-header">Nama Mahasiswa</h5>
<span class="description-text">{{ $data->nama}}</span>
</div>
</div>
<div class="col-sm-4">
<div class="description-block" style="margin-top: 0px; overflow: hidden;">
<h5 class="description-header">NIM</h5>
<span class="description-text">{{$data->nim}}</span>
</div>
</div>
</div>
</div>
<div class="card-body">
@if(session('success'))
<div class="alert alert-success">
<ul>
<li>{{ session('success') }}</li>
</ul>
</div>
@endif
@if(session('error'))
<div class="alert alert-danger">
<ul>
<li>{{ session('error') }}</li>
</ul>
</div>
@endif
<label for="dosen_dpu">Status TTD Dosen Pembimbing Utama : {{$data->dosen_dpu_nama_gelar}} </label>
<input type="text" name="dosen_dpu" id="dosen_dpu" class="form-control" readonly
value="@if($data->ttd_dpu!="-")Telah TTD Pada {{ $data->ttd_dpu }} @else Belum TTD @endif">
<label for="dosen_dpa">Status TTD Dosen Pembimbing Akademik : {{$data->dosen_dpa_nama_gelar}}</label>
<input type="text" name="dosen_dpa" id="dosen_dpa" class="form-control" readonly
value="@if($data->ttd_dpa!="-")Telah TTD Pada {{ $data->ttd_dpa }} @else Belum TTD @endif">
<label for="kombi">Status TTD Dosen Kombi : </label>
<input type="text" name="kombi" id="kombi" class="form-control" readonly
value="@if($data->ttd_kombi!="-")Telah TTD Pada {{ $data->ttd_kombi }} @else Belum TTD @endif">
<label for="judul_seminar_proposal">Judul Skripsi :</label>
<input type="text" name="judul_seminar_proposal" id="judul_seminar_proposal" class="form-control" readonly value="{{ $data->judul_seminar_proposal}}">
<div class="mt-2">
<label for="cetak">Cetak PDF Surat Pernyataan :</label>
<a href="{{ route('layanan-dpudpa.cetak',['caseid'=>$data->caseid]) }}" class="btn btn-success" target="_blank">Klik Disini Untuk Cetak PDF</a>
</div>
</div>
</div>
</div>
</div>
</div>
@include('layout.navbars.footer')
</div>
<script src="{{asset('/')}}plugins/jquery/jquery.min.js"></script>
<script src="{{asset('/')}}plugins/bootstrap/js/bootstrap.bundle.min.js"></script>
<script src="{{asset('/')}}dist/js/adminlte.min.js?v=3.2.0"></script>
</body>
</html>

View File

@ -6,7 +6,9 @@
use App\Http\Controllers\AdminController;
use App\Http\Controllers\UserController;
use App\Http\Controllers\LayananPengajuanDpuDpaController;
use App\Http\Controllers\LayananSeminarProposal;
use App\Http\Controllers\MahasiswaController;
use App\Http\Controllers\MonitoringController;
use App\Http\Controllers\SesiLoginController;
/*
@ -40,6 +42,10 @@
Route::get('/layanan-dpudpa', [LayananPengajuanDpuDpaController::class, 'index'])->name('layanan-dpudpa.index');
Route::DELETE('/layanan-dpudpa', [LayananPengajuanDpuDpaController::class, 'destroy'])->name('layanan-dpudpa.destroy');
Route::POST('/layanan-dpudpa', [LayananPengajuanDpuDpaController::class, 'terima'])->name('layanan-dpudpa.terima');
//layanan Pengajuan Seminar Proposal
Route::get('/layanan-sempro', [LayananSeminarProposal::class, 'index'])->name('layanan-sempro.index');
Route::DELETE('/layanan-sempro', [LayananSeminarProposal::class, 'destroy'])->name('layanan-sempro.destroy');
Route::POST('/layanan-sempro', [LayananSeminarProposal::class, 'terima'])->name('layanan-sempro.terima');
//User
Route::get('/users', [UserController::class, 'index'])->name('users.index');
@ -61,5 +67,7 @@
//Layanan Pengajuan DPU/DPA
Route::get('/layanan-dpudpa/tambah', [LayananPengajuanDpuDpaController::class, 'tambah'])->name('layanan-dpudpa.tambah');
Route::post('/layanan-dpudpa/tambah', [LayananPengajuanDpuDpaController::class, 'store'])->name('layanan-dpudpa.store');
Route::get('/layanan-dpudpa/cetak/{caseid}', [LayananPengajuanDpuDpaController::class, 'cetak'])->name('layanan-dpudpa.cetak');
Route::get('/layanan-dpudpa/{url}/{caseid}', [LayananPengajuanDpuDpaController::class, 'ettd'])->name('layanan-dpudpa.ettd');
Route::POST('/layanan-dpudpa/{url}/{caseid}', [LayananPengajuanDpuDpaController::class, 'submitettd'])->name('layanan-dpudpa.submitettd');
Route::POST('/layanan-dpudpa/{url}/{caseid}', [LayananPengajuanDpuDpaController::class, 'submitettd'])->name('layanan-dpudpa.submitettd');
ROute::get('/monitoring/{caseid}', [MonitoringController::class, 'caseid'])->name('monitoring.caseid');