diff --git a/app/Http/Controllers/User/Pembeli/PembeliController.php b/app/Http/Controllers/User/Pembeli/PembeliController.php index 0429467..e2b548f 100644 --- a/app/Http/Controllers/User/Pembeli/PembeliController.php +++ b/app/Http/Controllers/User/Pembeli/PembeliController.php @@ -53,6 +53,30 @@ class PembeliController extends Controller public function store(Request $request) { + $request->validate( + [ + 'nama_barang' => ['required'], + 'harga_barang' => ['required'], + 'satuan_barang' => ['required'], + 'jumlah_barang' => ['required'], + 'email_penjual' => ['required'], + 'persentase_keuntungan' => ['required'], + 'total_keuntungan' => ['required'], + 'total_bayar' => ['required'], + 'total_harga' => ['required'] + ],[ + 'nama_barang.required' => 'Isi nama barang', + 'harga_barang.required' => 'Isi harga barang', + 'satuan_barang.required' => 'Isi satuan barang', + 'jumlah_barang.required' => 'Isi jumlah barang', + 'email_penjual.required' => 'Isi email penjual. Bisa dari kontak atau masukan email', + 'persentase_keuntungan.required' => 'Terjadi kesalahan di server', + 'total_keuntungan.required' => 'Terjadi kesalahan di server', + 'total_bayar.required' => 'Terjadi kesalahan di server', + 'total_harga.required' => 'Terjadi kesalahan di server' + ] + ); + $pembeli = auth()->user()->email; $penjual = $request->email_penjual; $nama_barang = $request->nama_barang; diff --git a/database/migrations/2023_08_01_073859_create_transactions_table.php b/database/migrations/2023_08_01_073859_create_transactions_table.php index 6df18e4..2502525 100644 --- a/database/migrations/2023_08_01_073859_create_transactions_table.php +++ b/database/migrations/2023_08_01_073859_create_transactions_table.php @@ -32,6 +32,7 @@ return new class extends Migration $table->enum('status_transaksi',['success','challenge','failure','process','sending','sent','finished','created', 'refund', 'done'])->default('created'); // transaction_status $table->enum('status_pembayaran',['settlement','capture','pending','expire','failure','cancel','refund'])->nullable(); // status transaksi dari midtrans $table->timestamp('batas_pembayaran')->nullable(); + $table->timestamp('batas_pembatalan_transaksi')->nullable(); $table->timestamp('batas_konfirmasi_transaksi')->nullable(); $table->timestamp('batas_pengiriman_barang_akhir'); $table->timestamp('tanggal_transaksi')->nullable(); diff --git a/public/assets/img/modal-end/approve.png b/public/assets/img/modal-end/approve.png new file mode 100644 index 0000000..6759a8c Binary files /dev/null and b/public/assets/img/modal-end/approve.png differ diff --git a/public/assets/img/modal-end/refund.png b/public/assets/img/modal-end/refund.png new file mode 100644 index 0000000..7afff2e Binary files /dev/null and b/public/assets/img/modal-end/refund.png differ diff --git a/resources/views/User/transaction/Pembeli/modal-end-transaction.blade.php b/resources/views/User/transaction/Pembeli/modal-end-transaction.blade.php index 2f61b79..6255479 100644 --- a/resources/views/User/transaction/Pembeli/modal-end-transaction.blade.php +++ b/resources/views/User/transaction/Pembeli/modal-end-transaction.blade.php @@ -14,20 +14,25 @@
-

asdasdasdsad

+

+ Silahkan konfirmasi barang anda sebelum menyelesaikan + transaksi atau mengajukan + refund. Harap diminta kesadaran penuh anda sebelum memilih selesaikan transaksi atau + ajukan + komplain.

-
+
- + approve
- + refund
diff --git a/resources/views/User/transaction/Pembeli/new-transaction.blade.php b/resources/views/User/transaction/Pembeli/new-transaction.blade.php index 02cb5ec..cfc9ee5 100644 --- a/resources/views/User/transaction/Pembeli/new-transaction.blade.php +++ b/resources/views/User/transaction/Pembeli/new-transaction.blade.php @@ -9,109 +9,121 @@
-
-

Form Transaksi

-
-
-
-
-
+
@@ -307,126 +319,81 @@ } }); - $("#save").on("click", function() { - const csrfToken = $('meta[name="csrf-token"]').attr("content"); + $('#formTambahTransaksi').on('submit', function(e) { + e.preventDefault(); + const csrfToken = $('meta[name="csrf-token"]').attr('content'); + let form = this; + let email_kontak = $('#selectContact').val(); + let email_input = $('#inputPenjual').val(); + let penjual = email_kontak != null ? email_kontak : email_input; - let opsiKontak = document.querySelector( - '[name="select_penjual"]' - ).value; - let inputKontak = document.querySelector( - '[name="input_penjual"]' - ).value; - let namaBarang = document.querySelector('[name="nama_barang"]').value; - let hargaBarang = document.querySelector('[name="harga_barang"]').value; - let satuanBarang = document.querySelector( - '[name="satuan_barang"]' - ).value; - let jumlahBarang = document.querySelector( - '[name="jumlah_barang"]' - ).value; - let deskripsi = document.querySelector( - 'textarea[name="deskripsi"]' - ).value; + const formData = new FormData(this); + formData.append("email_penjual", penjual); + formData.append("persentase_keuntungan", biayaAdmin); + formData.append("total_keuntungan", totalBiayaAdmin); + formData.append("total_harga", totalHarga); + formData.append("total_bayar", totalBayar); - let emptyInput = []; + Swal.fire({ + html: '

Form Anda sedang diproses!

Mohon tunggu...

', + allowEscapeKey: false, + allowOutsideClick: false, + didOpen: () => { + Swal.showLoading(); + } + }); - let penjual = ""; - if (opsiKontak != "" && inputKontak != "") { - penjual = opsiKontak; - } else if (opsiKontak == "" && inputKontak != "") { - penjual = inputKontak; - } else if (inputKontak == "" && opsiKontak != "") { - penjual = opsiKontak; - } else { - emptyInput.push("Kolom penjual tidak boleh kosong"); - } + $.ajaxSetup({ + headers: { + "X-CSRF-TOKEN": csrfToken, + }, + }); - if (penjual == "{{ Auth::user()->email }}") { - emptyInput.push( - "Email penjual tidak boleh sama dengan email pembeli" - ); - } + $.ajax({ + url: "{{ route('user-pembeli.store') }}", + type: "POST", + data: formData, + processData: false, + contentType: false, + success: function(response) { + Swal.fire({ + title: response.status ? "Berhasil" : "Gagal", + text: response.message, + icon: response.status ? "success" : "error", + confirmButtonText: "OK", + }).then(function() { + if (response.status) { + location.href = + "{{ route('user-pembeli.index') }}"; + } + }); + }, + error: function(error) { + if (error.responseJSON && error.responseJSON.errors) { + let errorMessage = "Terdapat beberapa kesalahan:
"; - if (namaBarang == "") { - emptyInput.push("Nama barang tidak boleh kosong"); - } + const errors = error.responseJSON.errors; - if (hargaBarang == "") { - emptyInput.push("Harga barang tidak boleh kosong"); - } + for (let key in errors) { + errorMessage += `${errors[key].join(', ')}
`; + } - if (satuanBarang == "") { - emptyInput.push("Satuan barang tidak boleh kosong"); - } - - if (jumlahBarang == "") { - emptyInput.push("Jumlah barang tidak boleh kosong"); - } - - if (emptyInput.length > 0) { - const emptyInputError = emptyInput.join(", "); - Swal.fire({ - title: "Gagal", - text: emptyInputError, - icon: "error", - confirmButtonText: "OK", - }); - } else { - Swal.fire({ - html: '

Form Anda sedang diproses!

Mohon tunggu...

', - allowEscapeKey: false, - allowOutsideClick: false, - didOpen: () => { - Swal.showLoading(); - } - }); - - const formData = new FormData(); - formData.append("email_penjual", penjual); - formData.append("nama_barang", namaBarang); - formData.append("satuan_barang", satuanBarang); - formData.append("harga_barang", hargaBarang); - formData.append("jumlah_barang", jumlahBarang); - formData.append("deskripsi", deskripsi); - formData.append("persentase_keuntungan", biayaAdmin); - formData.append("total_keuntungan", totalBiayaAdmin); - formData.append("total_harga", totalHarga); - formData.append("total_bayar", totalBayar); - - $.ajaxSetup({ - headers: { - "X-CSRF-TOKEN": csrfToken, - }, - }); - - $.ajax({ - url: "{{ route('user-pembeli.store') }}", - type: "POST", - data: formData, - processData: false, - contentType: false, - success: function(response) { - Swal.fire({ - title: response.status ? "Berhasil" : "Gagal", - text: response.message, - icon: response.status ? "success" : "error", - confirmButtonText: "OK", - }).then(function() { - if (response.status) { - location.href = - "{{ route('user-pembeli.index') }}"; - } - }); - }, - error: function(error) { Swal.fire({ title: "Gagal", - text: "Gagal mengirimkan data karena " + error, + html: errorMessage, icon: "error", }); - }, - }); - } + } else { + Swal.fire({ + title: "Gagal", + text: "Gagal mengirimkan data karena " + error + .statusText, + icon: "error", + }); + } + console.log(error); + }, + }); }); }); diff --git a/resources/views/index.blade.php b/resources/views/index.blade.php index 967d2c8..570f93a 100644 --- a/resources/views/index.blade.php +++ b/resources/views/index.blade.php @@ -97,7 +97,7 @@ -