Perbaiki tampilan transaksi baru

This commit is contained in:
Muhammad Raihan Surya 2023-12-06 16:22:54 +07:00
parent fc7db3e110
commit 1095ed940c
7 changed files with 213 additions and 216 deletions

View File

@ -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;

View File

@ -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();

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 KiB

View File

@ -14,20 +14,25 @@
<div class="row">
<div class="col-12">
<div class="activities">
<p>asdasdasdsad</p>
<p style="text-align: justify;">
Silahkan konfirmasi barang anda sebelum menyelesaikan
transaksi atau mengajukan
refund. Harap diminta kesadaran penuh anda sebelum memilih selesaikan transaksi atau
ajukan
komplain.</p>
</div>
</div>
</div>
<div class="row">
<div class="row m-4">
<div class="col-12">
<div class="activities">
<div class="col-6 d-flex justify-content-center">
<img src="{{ asset('assets/img/avatar/avatar-1.png') }}"
style="max-width:200px; max-height: 150px;" alt="">
<img src="{{ asset('assets/img/modal-end/approve.png') }}" style="width:100%;"
alt="approve">
</div>
<div class="col-6 d-flex justify-content-center">
<img src="{{ asset('assets/img/avatar/avatar-1.png') }}"
style="max-width:200px; max-height: 150px;" alt="">
<img src="{{ asset('assets/img/modal-end/refund.png') }}" style="width:100%;"
alt="refund">
</div>
</div>
</div>

View File

@ -9,16 +9,18 @@
<div class="card-body">
<div class="card"
style="border: 1px solid #ddd; border-radius: 8px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); position: relative; background: linear-gradient(45deg, #f3f3f3, #e0e0e0);">
<form action="javascript:void(0);" method="POST" id="formTambahTransaksi"
enctype="multipart/form-data">
<div class="card-header d-flex justify-content-center">
<h2>Form Transaksi</h2>
</div>
<div class="card-body">
<div class="form-row">
<div class="form-group col-md-12">
<label for="inputpembeli">
<label for="inputPembeli">
<h5>Nama Pembeli</h5>
</label>
<input type="email" class="form-control" id="inputpembeli"
<input type="email" class="form-control" id="inputPembeli" name="pembeli"
placeholder="Masukkan nama pembeli"
value="{{ Auth::user()->nama_depan . ' ' . Auth::user()->nama_belakang }}"
disabled>
@ -31,11 +33,12 @@
</label>
<h6>Pilih dari kontak</h6>
<div class="input-group">
<select class="form-control" id="selectContact" name="select_penjual"
style="width: 89%">
<select class="form-control col-lg-10 col-md-10 col-sm-12"
id="selectContact" name="select_penjual">
</select>
<button class="btn btn-danger" type="button" id="deleteOption">Hapus</button>
<button class="btn btn-danger col-md-2 col-md-2 col-sm-12" type="button"
id="deleteOption">Hapus</button>
</div>
</div>
@ -67,15 +70,15 @@
<label for="hargaBarang">
<h5>Satuan</h5>
</label>
<input type="text" class="form-control" name="satuan_barang" id="satuanBarang"
placeholder="Buah/Kg/Karung/Jutaan dll.">
<input type="text" class="form-control" name="satuan_barang"
id="satuanBarang" placeholder="Buah/Kg/Karung/Jutaan dll.">
</div>
<div class="form-group">
<label for="jumlahBarang">
<h5>Jumlah Satuan</h5>
</label>
<input type="text" class="form-control" name="jumlah_barang" id="jumlahBarang"
placeholder="Jumlah satuan"
<input type="text" class="form-control" name="jumlah_barang"
id="jumlahBarang" placeholder="Jumlah satuan"
oninput="this.value = this.value.replace(/[^0-9.]/g, '').substring(0, 10);">
</div>
@ -88,30 +91,39 @@
<div class="dashed-line"></div>
<div class="form-row">
<label style="margin-right: 200px;" id="jumlah">Nominal</label>
<div style="display: inline-block;" id="totalBiaya">Rp 0,00</div>
</div>
<div class="form-row">
<label style="margin-right: 200px;" id="biayaAdmin" data-admin="">Biaya Admin
<div class="form-group">
<div class="input-group">
<label class="col-6" id="jumlah">Nominal</label>
<div class="col-6 text-right" id="totalBiaya">
Rp 0,00
</div>
</div>
</div>
<div class="form-group">
<div class="input-group">
<label class="col-6" id="biayaAdmin">Biaya Admin
({{ $persentase_keuntungan }}%)</label>
<div style="display: inline-block;" id="totalBiayaAdmin">Rp 0,00</div>
<div class="col-6 text-right" id="totalBiayaAdmin">Rp 0,00</div>
</div>
</div>
<div class="form-row">
<h6 style="margin-right: 200px;">Total Biaya</h6>
<div style="display: inline-block;">
<div class="form-group">
<div class="input-group">
<h6 class="col-6">Total Biaya</h6>
<div class="col-6 text-right">
<h6 id="totalBayar">Rp 0,00</h6>
</div>
</div>
</div>
<div class="dashed-line"></div>
<div class="card-footer d-flex justify-content-center">
<button type="button" class="btn btn-primary" id="save">Buat</button>
<button type="submit" class="btn btn-primary" id="save">Buat</button>
</div>
</div>
</form>
</div>
</div>
</div>
@ -307,71 +319,21 @@
}
});
$("#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 = [];
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");
}
if (penjual == "{{ Auth::user()->email }}") {
emptyInput.push(
"Email penjual tidak boleh sama dengan email pembeli"
);
}
if (namaBarang == "") {
emptyInput.push("Nama barang tidak boleh kosong");
}
if (hargaBarang == "") {
emptyInput.push("Harga barang tidak boleh kosong");
}
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: '<div class="mt-3"><lord-icon src="https://cdn.lordicon.com/etwtznjn.json" trigger="loop" colors="primary:#0ab39c,secondary:#405189" style="width:120px;height:120px"></lord-icon><div class="mt-4 pt-2 fs-15"><h4>Form Anda sedang diproses!</h4><p class="text-muted mx-4 mb-0">Mohon tunggu...</p></div></div>',
allowEscapeKey: false,
@ -381,18 +343,6 @@
}
});
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,
@ -419,14 +369,31 @@
});
},
error: function(error) {
if (error.responseJSON && error.responseJSON.errors) {
let errorMessage = "Terdapat beberapa kesalahan:<br>";
const errors = error.responseJSON.errors;
for (let key in errors) {
errorMessage += `${errors[key].join(', ')}<br>`;
}
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);
},
});
});
});
</script>

View File

@ -97,7 +97,7 @@
<!-- ======= END SIGN IN FORM ======= -->
<!-- ======= SIGN UP FORM ======= -->
<form action="javascript:void(0)" class="sign-up-form" id="msform" enctype="multipart/form-data"
<form action="javascript:void(0);" class="sign-up-form" id="msform" enctype="multipart/form-data"
method="POST">
@csrf
<h2 class="title">Daftar</h2>