Commit 7182a9bd by Alfiro Pratama

Unduh Excel (Proposal - Operator)

parent bc7867ef
......@@ -27,56 +27,65 @@ class ProposalExport implements FromView,ShouldAutoSize
if($this->jenis != "0")
{
$statement .= " AND jenis_id = '".$this->jenis."'";
$statement .= " AND jenis_id = '{$this->jenis}'";
}
if($this->status != "0")
{
// dikurang 1 karena di view mulai dari 0 sedangkan 0 itu menunggu persetujuan
$status = $this->status - 1;
$statement .= " AND STATUS = '".$status."'";
$statement .= " AND STATUS = '{$status}'";
}
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 = [];
$no = 0;
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;
$urut = 1;
foreach ($value->rKelompokDetil as $keys => $detil) {
if($detil->status_ketua == '1')
{
$row = [
'kode' => $value->kode,
'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";
}
else
{
$keanggotaan = "Anggota ".$urut;
} else {
$keanggotaan = "Anggota " . $urut;
$urut++;
}
$result[$no]['rowspan'] = count($value->rKelompokDetil);
$result[$no]['kode'] = $value->kode;
$result[$no]['jenis'] = $value->jenis_pkm;
$result[$no]['fak'] = $detil->fakultas;
$result[$no]['nama'] = $detil->nama;
$result[$no]['nim'] = $detil->nim;
$result[$no]['keanggotaan'] = $keanggotaan;
$result[$no]['judul'] = $value->judul;
$result[$no]['dospem'] = $dospem;
$result[$no]['link'] = $url;
$no++;
$row['kelompok'][] = [
'fak' => $detil->fakultas,
'nama' => $detil->nama,
'nim' => $detil->nim,
'keanggotaan' => $keanggotaan,
];
}
$result[] = $row;
}
$datas['list_proposal'] = $result;
......
......@@ -19,6 +19,7 @@ use App\Models\DaftarProposal;
use App\Exports\ProposalExport;
use App\Http\Controllers\Controller;
use Maatwebsite\Excel\Facades\Excel;
use Illuminate\Support\Facades\Log;
class ProposalController extends Controller
{
......@@ -115,7 +116,7 @@ class ProposalController extends Controller
if($status == '1')
{
$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')
{
......@@ -125,11 +126,11 @@ class ProposalController extends Controller
else
{
$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'>Disetujui Dosen Pada : ".$date_approval." WIB</span>";
......@@ -218,7 +219,26 @@ class ProposalController extends Controller
$status = $request->status;
$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)
......
......@@ -88,7 +88,7 @@
<div class="col-sm-10 col-lg-10">
<div class="input-group">
<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>
<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>
......
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