Commit 7182a9bd by Alfiro Pratama

Unduh Excel (Proposal - Operator)

parent bc7867ef
...@@ -27,56 +27,65 @@ class ProposalExport implements FromView,ShouldAutoSize ...@@ -27,56 +27,65 @@ class ProposalExport implements FromView,ShouldAutoSize
if($this->jenis != "0") if($this->jenis != "0")
{ {
$statement .= " AND jenis_id = '".$this->jenis."'"; $statement .= " AND jenis_id = '{$this->jenis}'";
} }
if($this->status != "0") if($this->status != "0")
{ {
// dikurang 1 karena di view mulai dari 0 sedangkan 0 itu menunggu persetujuan // dikurang 1 karena di view mulai dari 0 sedangkan 0 itu menunggu persetujuan
$status = $this->status - 1; $status = $this->status - 1;
$statement .= " AND STATUS = '".$status."'"; $statement .= " AND STATUS = '{$status}'";
} }
if($this->tahun != "0") if($this->tahun != "0")
{ {
$statement .= " AND PERIODE = '".$this->tahun."'"; $statement .= " AND PERIODE = '{$this->tahun}'";
} }
$data = DaftarProposal::with('rKelompokDetil')->whereRaw($statement)->get(); $data = DaftarProposal::with('rKelompokDetil')
->whereRaw($statement)
->orderBy('kode', 'ASC')
->get();
$result = []; $result = [];
$no = 0; $no = 0;
foreach ($data as $key => $value) { foreach ($data as $key => $value) {
$dospem = "(".str_replace("###",") ",$value->identitas_dospem); $dospem = str_replace("###","\n",$value->identitas_dospem);
$url = "https://statik.unesa.ac.id/simpmw/proposal/".$value->periode."/".$value->upload_dokumen; $url = "https://statik.unesa.ac.id/simpmw/proposal/".$value->periode."/".$value->upload_dokumen;
$urut = 1; $urut = 1;
foreach ($value->rKelompokDetil as $keys => $detil) { $row = [
'kode' => $value->kode,
if($detil->status_ketua == '1') 'jenis' => $value->jenis_pkm,
{ 'judul' => $value->judul,
'usulan' => $value->usulan_dana,
'dospem' => $dospem,
'link' => $url,
'video' => $value->url,
'periode' => $value->periode,
'status' => $value->status,
'kelompok' => [],
];
foreach ($value->rKelompokDetil as $detil) {
if ($detil->status_ketua == '1') {
$keanggotaan = "Ketua"; $keanggotaan = "Ketua";
} } else {
else $keanggotaan = "Anggota " . $urut;
{
$keanggotaan = "Anggota ".$urut;
$urut++; $urut++;
} }
$result[$no]['rowspan'] = count($value->rKelompokDetil); $row['kelompok'][] = [
$result[$no]['kode'] = $value->kode; 'fak' => $detil->fakultas,
$result[$no]['jenis'] = $value->jenis_pkm; 'nama' => $detil->nama,
$result[$no]['fak'] = $detil->fakultas; 'nim' => $detil->nim,
$result[$no]['nama'] = $detil->nama; 'keanggotaan' => $keanggotaan,
$result[$no]['nim'] = $detil->nim; ];
$result[$no]['keanggotaan'] = $keanggotaan;
$result[$no]['judul'] = $value->judul;
$result[$no]['dospem'] = $dospem;
$result[$no]['link'] = $url;
$no++;
} }
$result[] = $row;
} }
$datas['list_proposal'] = $result; $datas['list_proposal'] = $result;
......
...@@ -19,6 +19,7 @@ use App\Models\DaftarProposal; ...@@ -19,6 +19,7 @@ use App\Models\DaftarProposal;
use App\Exports\ProposalExport; use App\Exports\ProposalExport;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use Maatwebsite\Excel\Facades\Excel; use Maatwebsite\Excel\Facades\Excel;
use Illuminate\Support\Facades\Log;
class ProposalController extends Controller class ProposalController extends Controller
{ {
...@@ -115,7 +116,7 @@ class ProposalController extends Controller ...@@ -115,7 +116,7 @@ class ProposalController extends Controller
if($status == '1') if($status == '1')
{ {
$keterangan = '<span class="badge bg-success">Disetujui Dosen</span>'; $keterangan = '<span class="badge bg-success">Disetujui Dosen</span>';
$aksi = '<a class="btn btn-warning btn-sm waves-effect waves-light aksi" role="button" data-ket="Proposal Kelompok yang dibatalkan status diterima akan otomatis menjadi status ditolak agar dapat menunggah ulang Proposal." data-id="'.Crypt::encrypt($proposal_id.'#2').'"><i class="fas fa-undo"></i></a>'; $aksi = '<a class="btn btn-warning btn-sm waves-effect waves-light aksi" role="button" data-toggle="tooltip" data-placement="bottom" title="Batalkan Status" data-ket="Proposal Kelompok yang dibatalkan status diterima akan otomatis menjadi status ditolak agar dapat menunggah ulang Proposal." data-id="'.Crypt::encrypt($proposal_id.'#2').'"><i class="fas fa-undo"></i></a>';
} }
elseif($status == '2') elseif($status == '2')
{ {
...@@ -125,11 +126,11 @@ class ProposalController extends Controller ...@@ -125,11 +126,11 @@ class ProposalController extends Controller
else else
{ {
$keterangan = '<span class="badge bg-warning">Menunggu Persetujuan Dosen</span>'; $keterangan = '<span class="badge bg-warning">Menunggu Persetujuan Dosen</span>';
$aksi = '<a class="btn btn-success btn-sm waves-effect waves-light aksi" role="button" data-ket="Proposal Kelompok disetujui" data-id="'.Crypt::encrypt($proposal_id.'#1').'"><i class="fas fa-check"></i></a> <a class="btn btn-danger btn-sm waves-effect waves-light aksi" role="button" data-ket="Proposal Kelompok ditolak" data-id="'.Crypt::encrypt($proposal_id.'#2').'"><i class="fas fa-times"></i></a>'; $aksi = '<a class="btn btn-success btn-sm waves-effect waves-light aksi" role="button" data-toggle="tooltip" data-placement="bottom" title="Setujui Proposal" data-ket="Proposal Kelompok disetujui" data-id="'.Crypt::encrypt($proposal_id.'#1').'"><i class="fas fa-check"></i></a> <a class="btn btn-danger btn-sm waves-effect waves-light aksi" role="button" data-toggle="tooltip" data-placement="bottom" title="Tolak Proposal" data-ket="Proposal Kelompok ditolak" data-id="'.Crypt::encrypt($proposal_id.'#2').'"><i class="fas fa-times"></i></a>';
} }
} }
$aksi .= ' <a href="'.$url.'" target="_blank" class="btn btn-primary btn-sm waves-effect waves-light" role="button"><i class="fas fa-search"></i></a>'; $aksi .= ' <a href="'.$url.'" target="_blank" class="btn btn-primary btn-sm waves-effect waves-light" role="button"data-toggle="tooltip" data-placement="bottom" title="Lihat Proposal"><i class="fas fa-search"></i></a>';
$keterangan .= "<br><span class='badge bg-info'>Upload Proposal Pada : ".$date_upload." WIB</span>"; $keterangan .= "<br><span class='badge bg-info'>Upload Proposal Pada : ".$date_upload." WIB</span>";
$keterangan .= "<br><span class='badge bg-info'>Disetujui Dosen Pada : ".$date_approval." WIB</span>"; $keterangan .= "<br><span class='badge bg-info'>Disetujui Dosen Pada : ".$date_approval." WIB</span>";
...@@ -218,7 +219,26 @@ class ProposalController extends Controller ...@@ -218,7 +219,26 @@ class ProposalController extends Controller
$status = $request->status; $status = $request->status;
$tahun= $request->tahun; $tahun= $request->tahun;
return Excel::download(new ProposalExport($jenis, $status, $tahun), 'proposal_export.xlsx'); // $export = new ProposalExport($jenis, $status, $tahun);
// return Excel::download(new ProposalExport($jenis, $status, $tahun), 'proposal_export.xlsx');
// return $export->view();
// Mulai pencatatan waktu
$startTime = microtime(true);
// Ekspor ke Excel
$response = Excel::download(new ProposalExport($jenis, $status, $tahun), 'daftar-proposal-pmw-'.$tahun.'_export.xlsx');
// Akhir pencatatan waktu
$endTime = microtime(true);
// Hitung waktu yang dibutuhkan dalam detik
$executionTime = $endTime - $startTime;
// Log waktu yang dibutuhkan
Log::info('Waktu yang dibutuhkan untuk proses ekspor: ' . $executionTime . ' detik');
return $response;
} }
public function prosesProposal(Request $request) public function prosesProposal(Request $request)
......
...@@ -88,7 +88,7 @@ ...@@ -88,7 +88,7 @@
<div class="col-sm-10 col-lg-10"> <div class="col-sm-10 col-lg-10">
<div class="input-group"> <div class="input-group">
<span class="input-group-text">Rp</span> <span class="input-group-text">Rp</span>
<input class="form-control" type="text" id="usulan_dana" name="usulan_dana" value="{{ old('usulan_dana') }}" placeholder="Dana yang ingin diajukan (cth: 950000 atau 950000.50 tanda (.) hanya untuk nominal desimal)" required onkeypress="return isNumberKey(event)" onkeyup="formatRupiah(this)"> <input class="form-control" type="text" id="usulan_dana" name="usulan_dana" value="{{ old('usulan_dana') }}" placeholder="Dana yang ingin diajukan (cth: 950000 atau 950000.50 | tanda (.) hanya untuk nominal desimal)" required onkeypress="return isNumberKey(event)" onkeyup="formatRupiah(this)">
</div> </div>
<small id="invalidInput" class="text-danger" style="display: none;">Harap masukkan angka atau desimal (contoh: 950000 atau 950000.50)</small> <small id="invalidInput" class="text-danger" style="display: none;">Harap masukkan angka atau desimal (contoh: 950000 atau 950000.50)</small>
<small id="dotWarning" style="display: none; color: red;">Simbol titik (.) tidak boleh diinputkan lebih dari 1</small> <small id="dotWarning" style="display: none; color: red;">Simbol titik (.) tidak boleh diinputkan lebih dari 1</small>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment