BAB 4 PERANCANGAN SISTEM
4.1 Pemodelan Sistem
4.1.7 Perancangan Antarmuka
42
4 client_id bigint(20) Foreign Key
5 issue longtext Atribut
6 file varchar (255) Atribut
7 user_id bigint (20) Foreign Key
8 status varchar(255) Atribut
g. Tabel Ticket Status
Nama : Ticket_statuses
Fungsi : Menyimpan data status progres ticket Tabel 4. 15:Struktur Tabel Ticket Status
No Nama Field Tipe Data (Size) Keterangan
1 id bigint (20) Primary Key
2 status enum (to do, on progress, testing, staging, done)
Atribut
3 description longtext Atribut
4 ticket_id bigint (20) Foreign Key
43 1. Desain Antarmuka Form Login
Tampilan input login ini berfungsi untuk user agar dapat mengakses ke halaman utama pada sistem.
Gambar 4. 17: Desain Antarmuka Form Login
2. Desain Antarmuka Form Tambah Pengguna/User (Admin)
Form tambah pengguna/user ini berfungsi untuk menambah data pengguna/user baru. Form ini hanya dapat dilakukan oleh admin.
Gambar 4. 18: Desain Antarmuka Form Tambah User (Admin)
44
3. Desain Antarmuka Form Tambah Client (Admin)
Form tambah client ini berfungsi untuk menambah data perusahaan klien baru. Form ini hanya dapat dilakukan oleh admin.
Gambar 4. 19: Desain Antarmuka Form Tambah Client (Admin)
4. Desain Antarmuka Form Tambah Product (Admin)
Form tambah product ini berfungsi untuk menambah data produk baru dengan menentukan asal perusahaan kliennya. Form ini hanya dapat dilakukan oleh admin.
Gambar 4. 20: Desain Antarmuka Form Tambah Product (Admin)
45
5. Desain Antarmuka Form Tambah Project (Admin)
Form tambah project ini berfungsi untuk menambah data proyek baru dengan menentukan asal perusahaan klien dan produknya. Form ini hanya dapat dilakukan oleh admin.
Gambar 4. 21: Desain Antarmuka Form Tambah Project (Admin)
46
6. Desain Antarmuka Form Pengajuan/Tambah Ticketing (Client) Form pengajuan/tambah ticketing ini berfungsi untuk membuat pengajuan tiket baru dengan menyertakan dokumen dan isunya untuk pelaporan permasalahan pada produk atau proyeknya dari para klien terkait.
Gambar 4. 22: Desain Antarmuka Form Pengajuan Ticketing (Admin)
47
7. Desain Antarmuka Form Assignment Ticket (Admin)
Form assignment ticket ini berfungsi untuk admin memberikan tugas kepada IT Teknisi dalam penanganan laporan permasalahan dari klien.
Form ini hanya dapat di akses oleh admin.
Gambar 4. 23: Desain Antarmuka Form Assigned Programmer (Admin)
8. Desain Antarmuka Form Edit Status Ticket (IT Teknisi)
Form edit status ticket ini berfungsi untuk melakukan perubahan status progres tiket. Form ini hanya dapat di akses oleh IT Teknisi.
Gambar 4. 24: Desain Antarmuka Form Edit Status Ticket (IT Teknisi)
48 4.1.7.2 Perancangan Output
Perancangan output yaitu perancangan antarmuka dari hasil form input yang sudah di isi dengan berhasil. Perancangan output ini berguna untuk menampilkan informasi dan data yang sesuai dengan apa yang telah diinputkan. Berikut ini hasil perancangan output :
1. Desain Antarmuka Output Data Pengguna/Users (Admin)
Output data users ini akan menampilkan semua data pengguna (user) sistem. Halaman data users ini hanya dapat diakses oleh admin.
Gambar 4. 25: Desain Antarmuka Data Users
49
2. Desain Antarmuka Output Data Clients (Admin)
Output data client ini akan menampilkan semua data profil perusahaan dari semua klien yang terkait. Halaman data client ini hanya dapat diakses oleh admin.
Gambar 4. 26: Desain Antarmuka Data Clients 3. Desain Antarmuka Output Data Products
Output data products ini akan menampilkan semua data produk yang dimiliki oleh klien pada sistem. Halaman data products ini hanya dapat diakses oleh admin.
Gambar 4. 27: Desain Antarmuka Data Products
50
4. Desain Antarmuka Output Data Projects
Output data projects ini akan menampilkan semua data proyek dari setiap produk yang dimiliki klien pada sistem. Halaman data projects ini hanya dapat diakses oleh admin.
Gambar 4. 28: Desain Antarmuka Data Projects 5. Desain Antarmuka Output Data Ticketing (Client)
Output data ticketing ini akan menampilkan semua data ticketing yang telah dibuat oleh klien pada sistem.
Gambar 4. 29: Desain Antarmuka Data Ticketing
51
6. Desain Antarmuka Output Assignment Ticket (Admin)
Output pada halaman ini menampilkan detail ticketing yang berisi dokumen, isu dan lain sebagainya. Pada tampilan admin akan menampilkan detail IT Teknisi yang sudah ditugaskan.
Gambar 4. 30: Desain Antarmuka Detail Ticket dan Detail IT Teknisi (Admin)
7. Desain Antarmuka Output Detail Status Ticketing
Output detail status ticketing ini menampilkan detail dari tiket beserta riwayat status progres dari produknya.
Gambar 4. 31: Desain Antarmuka Detail Status Ticketing
52
BAB 5
IMPLEMENTASI & PENGUJIAN SISTEM
5.1 Implementasi Sistem
Sistem informasi support ticketing ini adalah sistem berbasis website sehingga untuk mengakses sistem harus menggunakan aplikasi browser seperti Google Chrome, Mozilla Firefox, atau aplikasi browser sejenis lainnya. Dalam implementasi web server, penulis menggunakan Laragon versi 6.0.0 karena di dalam Laragon sudah termasuk paket program yaitu Apache sebagai HTTP Server, MySQL database, dan PHP versi 8.1.0 sehingga tidak perlu untuk install program satu per satu dan juga Framework PHP yang digunakan yaitu Framework Laravel versi 9. Untuk desain sistem, penulis menggunakan Figma, dan untuk implementasi sistem yang sudah dibangun, penulis menggunakan perangkat keras dengan spesifikasi processor AMD Ryzen 3 dan RAM 8 GB.
5.2.1 Implementasi Desain Antarmuka
Berikut ini adalah implementasi antarmuka sistem informasi support ticketing berbasis website yang dibuat.
53 1. Halaman Login
Halaman login adalah tampilan awal yang ditampilkan pada saat membuka sistem, langkah awal ketika masuk ke sistem dengan menginputkan email dan password pada halaman ini.
Gambar 5. 1: Tampilan Halaman Login
2. Halaman Dashboard
Halaman dashboard ini adalah tampilan halaman utama dari sistem. Pada tampilan ini, pengguna/user dapat melihat jumlah produk, proyek, tiket dan lain sebagainya sesuai dengan aksesnya masing-masing.
Gambar 5. 2: Tampilan Halaman Dashboard
54
3. Halaman Tambah Data Pengguna/User (Admin)
Halaman tambah data pengguna/user baru merupakan tampilan form untuk menambah data pengguna/user baru. Pada tampilan ini, hanya admin yang dapat akses memasukkan data-data pengguna/user baru beserta dengan asal perusahaan kliennya.
Gambar 5. 3: Tampilan Halaman Tambah Data User Baru (Admin)
4. Halaman List Data Pengguna/User (Admin)
Halaman list data semua pengguna/user merupakan tampilan tabel yang berisi semua data pengguna/user yang menggunakan sistem, beserta dengan data pengguna/user baru yang telah berhasil dimasukkan sebelumnya. Pada tampilan ini juga admin dapat merubah data pengguna/user dengan menekan tombol edit dan menghapus data pengguna/user dengan menekan tombol hapus.
55
Gambar 5. 4: Tampilan Halaman List Data Pengguna/User (Admin)
5. Halaman Tambah Data Klien (Admin)
Halaman tambah data perusahaan klien baru merupakan tampilan form untuk menambah data perusahaan klien baru. Pada tampilan ini, hanya admin yang dapat akses memasukkan data-data perusahaan klien baru.
Gambar 5. 5: Tampilan Tambah Data Klien (Admin)
6. Halaman List Data Klien (Admin)
Halaman list semua data klien merupakan tampilan tabel yang berisi data - data perusahaan dari klien yang ada pada sistem, beserta dengan data perusahaan klien baru yang telah berhasil dimasukkan sebelumnya. Pada
56
tampilan ini juga admin dapat melihat detailnya dengan menekan tombil mata, admin juga dapat merubah data perusahaan klien dengan menekan tombol edit dan menghapus data perusahaan klien dengan menekan tombol hapus.
Gambar 5. 6: Tampilan Halaman List Data Klien (Admin)
7. Halaman Tambah Data Produk (Admin)
Halaman tambah data produk merupakan tampilan form untuk menambah data produk baru berdasarkan perusahaan klien yang memilikinya. Pada tampilan ini, hanya admin yang dapat akses memasukkan data-data produk baru beserta dengan kategori produk dan perusahaan klien yang memilikinya.
57
Gambar 5. 7: Tampilan Halaman Tambah Data Produk (Admin)
8. Halaman List Data Produk
Halaman list data semua produk merupakan tampilan tabel yang berisi semua data produk beserta kategori dan perusahaan klien yang memilikinya, beserta dengan data produk baru yang telah berhasil dimasukkan sebelumnya. Pada tampilan ini juga admin dapat merubah data produk dengan menekan tombol edit dan menghapus data produk dengan menekan tombol hapus. Namun jika pada pengguna/user klien tampilan ini hanya bisa dilihat saja dan yang tampilpun hanya produk yang klien itu miliki saja.
Gambar 5. 8: Tampilan Halaman List Data Produk
58 9. Halaman Tambah Data Proyek (Admin)
Halaman tambah data proyek merupakan tampilan form untuk menambah data proyek baru yang dimiliki setiap klien. Pada tampilan ini, hanya admin yang dapat akses memasukkan data-data proyek baru beserta dengan produk terkait dan kliennya.
Gambar 5. 9: Tampilan Halaman Tambah Data Proyek (Admin)
10. Halaman List Data Proyek
Halaman list data proyek merupakan tampilan tabel yang berisi semua data proyek yang dimiliki oleh setiap klien pada sistem, beserta dengan data proyek baru yang telah berhasil dimasukkan sebelumnya. Pada tampilan ini juga admin dapat menghapus data proyek jika sudah selesai masa proyeknya dengan menekan tombol hapus.
59
Gambar 5. 10: Tampilan Halaman List Data Proyek
11. Halaman Pengajuan/Tambah Ticketing (Client)
Halaman pengajuan/tambah ticketing merupakan tampilan form untuk mengajukan/menambah tiket baru untuk melaporkan permasalahan pada produk atau proyeknya dari klien. Pada tampilan ini, hanya klien yang dapat akses untuk melakukan menambah pengajuan tiket baru beserta dengan dokumen dan isunya.
Gambar 5. 11: Tampilan Halaman Pengajuan/Tambah Ticketing (Client)
60 12. Halaman Assigned Ticket (Admin)
Halaman assigned ticket merupakan tampilan form yang dapat dilakukan oleh admin untuk menugaskan tiket laporan kepada IT Teknisi yang akan mengerjakan penyelesaian laporan terkait. Pada tampilan ini, hanya admin yang dapat akses untuk menunjuk IT Teknisi.
Gambar 5. 12: Tampilan Halaman Assigned Ticket (Admin)
13. Halaman Edit Status Ticket (IT Teknisi)
Halaman edit status ticket merupakan tampilan form untuk merubah status progres dari setiap tiket yang ada pada setiap IT Teknisi. Pada tampilan ini, hanya IT Teknisi yang dapat akses untuk merubah status progres tiket beserta deskripsinya.
61
Gambar 5. 13: Tampilan Halaman Edit Status Ticket (IT Teknisi)
14. Halaman Detail Ticket (Admin)
Halaman detail ticket merupakan tampilan yang berisi detail semua dari tiket terkait seperti status progres, dokumen laporan, isu laporan dan terpenting pada halaman admin ini akan menampilkan nama IT Teknisi yang bertanggungjawab dalam penyelesaian tiket terkait. Pada tampilan ini juga admin dapat melihat riwayat status progres tiket beserta keterangannya.
Gambar 5. 14: Tampilan Halaman Detail Ticket (Admin)
62 15. Halaman Detail Status Ticket
Halaman detail status ticket merupakan tampilan yang berisi detail dari tiket terkait seperti status progres, dokumen laporan, isu laporan dan riwayat status progres tiket beserta keterangannya.
Gambar 5. 15: Tampilan Halaman Detail Status Ticket
5.2 Pengujian Sistem
Pengujian sistem dilakukan bertujuan untuk mengetahui dan memastikan sistem yang dibangun telah sesuai dengan apa yang dirancang sebelumnya. Adapun beberapa tahap rencana dari pengujian yang telah penulis lakukan adalah sebagai berikut :
Tabel 5. 1: Tabel Hasil Pengujian Sistem Pengujian Deskripsi Hasil yang
diharapkan
Hasil Pengujian
Kesimpulan
Halaman Login
Admin/Client/IT Teknisi
Autentikasi User akan
User mendapatka
Valid
63 memasukkan
email atau password yang tidak sesuai data
menampilkan pesan bahwa email atau password salah
n pesan gagal login karena data tidak sesuai
Halaman Dashboard
User berhasil login dengan data email dan password yang sesuai
Menampilkan jumlah tiket, produk dan proyek sesuai dengan user terkait
Jumlah tiket, produk dam proyek yang ditampilkan sesuai
dengan user terkait
Valid
Pengelolaan data user
Admin
menambahkan user baru dengan client yang sudah terdaftar
Data user baru akan gagal ditambahkan karena dari satu client perusahaan hanya satu user
Admin mendapatka n pesan bahwa client sudah
terdaftar
Valid
Pengelolaan data client
Admin
menambahkan perusahaan klien
Data perusahaan klien baru
Admin mendapatka n pesan
Valid
64 baru dengan data
perusahaan yang sudah terdaftar
akan gagal ditambahkan dan
mendapatkan pesan bahwa perusahaan klien sudah ada.
bahwa perusahaan klien sudah ada.
Pengelolaan data produk
Admin
menambahkan nama produk dan klien yang sudah ada
Data produk baru akan gagal
ditambahkan dan
menampilkan pesan produk sudah ada
Admin mendapatka n pesan bahwa produk sudah ada
Valid
Pengelolaan data proyek
Admin
menambahkan produk dan klien yang sudah ada untuk proyeknya
Proyek baru akan gagal ditambahkan dan
menampilkan pesan klien
Admin mendapatka n pesan bahwa klien dan produk sudah ada
Valid
65
dan produk sudah ada Form
pengajuan tiket
Klien mengajukan tiket laporan permasalahan dengan produk yang sudah ada dan
Pengajuan akan gagal karena tiket dengan produk terkait sudah ada
Klien dapat pesan bahwa tiket dengan produk terkait sudah ada
Valid
Assigned tiket
Admin memberikan tugas kepada IT Teknisi untuk menyelesaikan laporan
permasalahan klien, tetapi status tiket harus sudah dibuka oleh klien.
Pemberian tugas kepada IT Teknisi berhasil dan status berubah menjadi “On Progress”, jika tiket di tutup oleh klien maka tidak akan bisa memberi tugas
Admin berhasil memberikan tugas kepada IT Teknisi yang
dimaksud dan status berubah menjadi “On Progress”
Valid
Edit status tiket
IT Teknisi merubah status
Status progres tiket berubah
IT Teknisi berhasil
Valid
66 disetiap progres
tiketnya
dan masuk ke riwayat status tiket pada detail tiket
merubah status
progres tiket dan masuk ke riwayat status tiket pada detail tiket
Detail status tiket
Klien klik tombol detail tiket untuk melihat detail tiket dan riwayat status dari tiket yang dimiliki
Detail tiket berhasil menampilkan riwayat status progres
Klien berhasil melihat detail tiket dengan riwayat status progres
Valid
67
BAB 6 PENUTUP
6.1 Kesimpulan
Berdasarkan hasil penelitian yang telah dilakukan, maka penulis akan mencoba menarik kesimpulan tentang penerapan Sistem Informasi Support Ticketing Berbasis Web, yaitu:
1. Sistem Informasi Support Ticketing ini dapat memberikan pelayanan penyampaian laporan permasalahan dari klien dan dapat melihat status progresnya dengan mudah melalui sistem informasi support ticketing berbasis web perusahaan.
2. Dengan adanya sistem informasi support ticketing dapat meningkatkan efisiensi dan efektivitas dalam mengelola laporan permasalahan yang dihadapi oleh klien.
3. Sistem informasi support ticketing ini untuk mempercepat dan mempermudah klien dalam menyampaikan permasalahan pada produknya sehingga dapat mengefisiensi waktu dalam proses penyelesaiannya.
4. Sistem informasi support ticketing ini dapat membantu Admin dalam pemberian tugas kepada IT Teknisi untuk menyelesaikan permasalahan dari klien.
68 6.2 Saran
Sistem informasi support ticketing pada PT. Solmit Bangun Indonesia ini masih dapat dikembangkan lebih lanjut dengan perkembangan spesifikasi kebutuhan pengguna sistem yang harus dipenuhi dalam mencapai tahap yang lebih tinggi dan kinerja sistem yang lebih baik karena sistem dibuat masih sederhana. Berikut adalah beberapa saran untuk pengembangan sistem lebih lanjut :
1. Perlu dilakukan pengembangan dan pemeliharaan yang lebih baik terhadap sistem yang telah dibuat maupun perangkat lunak yang dibangun, sehingga sistem dapat dipergunakan sesuai dengan kebutuhan perusahaan.
2. Pada sistem informasi support ticketing dapat ditambahkan fitur notifikasi untuk pemberitahuan permasalahan telah selesai dan pemberitahuan tugas yang masuk kepada IT Teknisi.
3. Sistem informasi support ticketing berbasis web yang dibuat penulis belum memiliki fitur yang lengkap seperti sistem SLA (Service Level Agreement) untuk mengukur tingkat isu pada permasalahan terkait, sistem report untuk menampilkan laporan dan sistem log aktivitas untuk riwayat perubahan atau tindakan yang dilakukan oleh user/pengguna.
xiv
DAFTAR PUSTAKA
[1] Y. Liharja, A. O. Sari and A. Satriansyah, "Rancang Bangun Sistem Informasi Helpdesk IT Support Berbasis Website," Jurnal Informatikan dan Teknologi, vol. 5, no. 1, pp. 157-166, 2022.
[2] K. C. Laudon and J. P. Laudon, Management Information System : Managing
the Digital Firm, 2012.
[3] V. "Perangkat Lunak Helpdesk Ticketing Berbasisi Web di PT Meprofarm Bandung," Jurnal LPKIA, 2018.
[4] R. N. Wardhani, M. C. Utami and I. Y. Saputra, "Sistem Informasi Helpdesk Ticketing pada PT. Bank Mega Tbk," Jurnal Ilmiah Matrik, vol. 22, no. 2, pp.
201-207, 2020.
[5] S. Syofian and A. Winandar, "Aplikasi Helpdesk Mendukung Sistem Ticketing," Jurnal Teknologi Informasi, 2017.
[6] M. Analisis Perancangan Sistem Berorientasi Objek dengan UML (Unified Modeling Language), Bandung: Informatika, 2018.
[7] F. and M. , UML Distilled Edisi ke-3, Yogyakarta: Andi Publisher, 2004.
[8] A. Kadir, Buku Pintar Programmer Pemula, Yogyakarta: Mediakom, 2013.
[9] B. Nugroho, Aplikasi Pemrograman Web Dinamis dengan PHP dan MySQL,
Yogyakarta: Gava Media, 2004.
[10] P. Mauliana, W. Wiguna and A. Y. Permana, "Pengembangan E-Helpdesk Support System," Jurnal Responsif, vol. 2, no. 1, pp. 19-29, 2020.
[11] M. winoto and S. N. Ambo, "HELPDESK SYSTEM UNTUK TECHNICL
SUPPORT BERBASIS HYBRID PADA PT.PANCA PUTRA SOLUSINDO," Jurnal Sistem Informasi, Teknologi Informasi dan Komputer, vol. 11, no. 3, pp. 37-42, 2021.
[12] N. S. P. P. W, R. R. Isnanto and I. P. Windasari, "PENGEMBANGAN SISTEM INFORMASI PENJUALAN DAN PEMBELIAN PADA TOKO PC TABLET," Jurnal Teknologi dan Sistem Informasi Komputer, vol. 2, no. 2, pp. 181-185, 2014.
[13] D. F. Dirmanthara, E. S. Nugraha, T. Prasetya, I. Ali and Kaslani, "Rancang Bangun Sistem Informasi Ticketing Berbasis Website pada STF
xv
Muhammadiyah Cirebon," Riset dan E-Jurnal Manajemen Informatika Komputer, vol. 6, no. 4, pp. 674-685, 2022.
[14] M. Ardhiansyah, "Penerapan Model Rapid Application Development pada Aplikasi Helpdesk Trouble Ticket PT. Satkomindo Mediyasa," Jurnal Teknologi Sistem Informasi dan Aplikasi, vol. 2, no. 2, pp. 43-52, 2019.
[15] S. I. Adam, J. H. Moedjahedy and O. Lengkong, "Pengembangan IT Helpdesk Ticketing Sistem Berbasis Web di Universitas Klabat," Cogito Smart Journal, vol. 6, no. 2, pp. 217-228, 2020.
[16] M. Fauzi, Masrizal and V. Sihombing, "SISTEM INFORMASI IT-
HELPDESK UNIVERSITAS LABUHANBATU BERBASIS WEB," Jurnal Teknologi dan Sistem Informasi, vol. 7, no. 3, pp. 259-266, 2021.
[17] Y. Iswara, I. Darmawan and U. Y. K. S. Hediyanto, "ANALISIS DAN
PERANCANGAN HELPDESK TICKETING SYSTEM UNTUK
MENGELOLA TINDAK PERBAIKAN PERANGKAT KOMPUTER DAN JARINGAN PADA PT. LEN INDUSTRI (PERSERO) MENGGUNAKAN METODOLOGI PDCA (PLAN-DO-CHECK-ACTION)," e-Proceeding of Engineering, vol. 5, no. 3, p. 7149, 2018.
[18] A. Naufal, D. Pramono and B. S. Prakoso, "Pengembangan Sistem Informasi Monitoring dan Helpdesk Proyek Pengembangan Perangkat Lunak (Studi Kasus: PT Lua Kreatif Teknologi)," Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer, vol. 6, no. 4, pp. 1558-1567, 2022.
[19] H. Wahyudi and R. Fajriah, "Perancangan Aplikasi Helpdesk Ticketing Dengan Penerapan Algoritma Forward Chaining (Stusi Kasus: PT Idemas Solusindo Sentosa)," Jurnal IlmuTeknik dan Komputer, vol. 4, no. 1, pp. 88- 97, 2020.
[20] R. Tarigan, I. Kusosi and A. Usri, "Perancangan Aplikasi Helpdesk Ticketing System Pada PT. Indonesia Nippon Seiki," (Sistem Informasi dan Komputer, vol. 11, no. 1, pp. 9-18, 2022.
[21] W. Likhar and H. Purwanto, "ANALISA DAN PERANCANGAN SISTEM
INFORMASI TICKETING HELPDESK ONLINE BERBASIS WEB:
STUDI KASUS PT XYZ," Jurnal Sistem Informasi UNSURYA, pp. 103-116, 2021.
[22] R. M. Bahrudin, M. Ridwan and H. S. Darmojo, "Penerapan Helpdesk Ticketing System Dalam Penanganan Keluhan Penggunaan Sistem Informasi Berbasis Web," JUTIS, vol. 7, no. 1, pp. 71-82, 2019.
xvi
LAMPIRAN
Lampiran 1.1 Source Code TicketModel.php
<?php
namespace App\Models;
use Carbon\Carbon;
use App\Models\Client;
use App\Models\Product;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Factories\HasFactory;
class Ticket extends Model {
use HasFactory;
protected $fillable = [ 'no_ticket',
'product_id', 'client_id', 'issue', 'file', 'user_id' ];
public function product() {
return $this->belongsTo(Product::class, 'product_id', 'id');
}
public function client() {
return $this->belongsTo(Client::class, 'client_id', 'id');
}
public function user() {
return $this->belongsTo(User::class, 'user_id', 'id');
}
public function ticketStatus() {
return $this->hasMany(TicketStatus::class, 'ticket_id');
} }
xvii
Lampiran 1.2 Source Code TicketController.php
class TicketController extends Controller {
public function index() {
$user = auth()->user();
if ($user->role === "admin") {
$tickets = Ticket::with('ticketStatus')->
get();
} else if ($user->role === "programmer") {
$tickets = Ticket::where('user_id', $user->
id)->with('ticketStatus')->get();
} else {
$tickets = Ticket::where('client_id', $user->
client_id)->with('client', 'product', 'user', 'ticketStatus')->get();
}
return view('ticket.index', [ 'ticket' => $tickets ]);
}
public function create() {
$user = auth()->user();
$project = Project::where('client_id', $user->
client_id)->with('client', 'product', 'documents')->get();
$client = Client::all();
$slas = Sla::all();
return view('ticket.tambah', [ 'project' => $project, 'client' => $client, 'slas' => $slas ]);
}
public function show(Ticket $ticket) {
$status = TicketStatus::where('ticket_id',
$ticket->id)->orderBy('created_at', 'desc')->get();
$getstatus = Ticket::with('ticketStatus')->get();
xviii
return view('ticket.detail', [ 'ticket' => $ticket,
'status' => $status, 'getstatus' => $getstatus ]);
}
public function store(Request $request) {
$product_id = $request->input('product_id');
$client_id = $request->input('client_id');
$issue = $request->input('issue');
$file = $request->file('file');
$path = Storage::putFile('documents', $file);
$ticket = new Ticket;
$ticket->product_id = $product_id;
$ticket->client_id = $client_id;
$ticket->issue = $issue;
$ticket->file = $path;
$lastTicket = Ticket::orderBy('id', 'desc')->
first();
$ticket->no_ticket = 'TICKET-' . str_pad($lastTicket ? $lastTicket->id + 1 : 1, 5, '0', STR_PAD_LEFT);
$ticket->save();
$status = new TicketStatus;
$status->status = 'pending';
$status->description = 'Harap Tunggu Admin akan Assign ke IT Teknisi';
$status->ticket_id = $ticket->id;
$status->save();
return redirect()->route('ticket.index')
->with('success', 'Ticket Berhasil Diajukan, Harap tunggu!');
}
public function edit(Ticket $ticket) {
$product = Product::all();
xix $client = Client::all();
$programmer = User::where('role', 'programmer')->
get();
$status = TicketStatus::where('ticket_id',
$ticket->id)->get();
return view('ticket.edit', [ 'product' => $product, 'client' => $client, 'ticket' => $ticket,
'programmer' => $programmer, 'status' => $status
]);
}
public function update(Request $request, Ticket
$ticket) {
$status = TicketStatus::firstOrCreate(['status' =>
'to do', 'description' => 'IT Teknisi sudah ditentukan oleh Admin, Tiket akan segera dikerjakan.', 'ticket_id' =>
$ticket->id]);
$status->ticket_id = $ticket->id;
$user = auth()->user();
if ($user->role === "admin") {
$ticket->user_id = $request->user_id;
}
$ticket->save();
return redirect()->route('ticket.index')
->with('success', 'Ticket Berhasil di Assign kepada Programmer');
}
public function destroy($id) {
$ticket = Ticket::findOrFail($id);
$ticket->delete();
return redirect()->route('ticket.index')
->with('delete', 'Ticket berhasil di Hapus!');
}