• Tidak ada hasil yang ditemukan

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!');

}

Dokumen terkait