Untuk melakukan check out disini kita akan menyiapkan 3 model yang akan digunakan
Lalu selanjutnya kita akan menambahkan library carbon, carbon ini digunakan untuk menformat tanggal dan menambahkan library auth untuk digunakan pada saat checkout untuk check id dari user maka dari itu kita gunakan auth.
Selanjutnya kita akan mempersiapkan dari kosongan index di fungsi yang akan kita gunakan, untuk index kita tambahkan Id juga dibagian proses tambahkan Id dan dibagian remove tambahkan detail Id, untuk bagian create bisa ditambahkan Id lalu yang terahkir bagian sukses juga di tambahkan Id, semua fungsi ada 5 fungsi yaitu index, proses, remove, create, success
Fungsi ke lima ini harus sama dengan yang ada di route / di web.php
Disini kita akan masuk dibagian fungsi awal yaitu fungsi index, untuk fungsi index ini kita tambahkan satu fungsi dan tambahkan varibale item dengan value Transaction dengan relasinya detail, travel package, user dan tambahkan findOrFail jadi kalau misalkan data tersedia akan dimunculkan dan jika tidak tersedia kembalikan ke 404.
Dan masukkan variable item kedalam view untuk mengirimkan data item ke checkout. selanjutnya masuk kedalam bagian proses, diproses ini akan membuat data atau memasukkan data kedalam table transaksi, jadi posisinya sedang berada didalam cart jadi untuk status atau transaksi statusnya akan kita jadikan sebagai incart.
Sama seperti sebelumnya cuma ditambah dengan source code transaction create karna didalam transaction create ada beberapa parameter yang akan ditambahkan
⦁ yang pertama ada travel_packages_id yang berisikan id dari travel
⦁ user_id yang berisikan fungsi Auth yang sebelumnya telah dipanggil dan mengambil id user yang sedang login.
⦁ additional_visa akan diset secara 0, jadi nantinya user datanya akan kita isi dengan 0
⦁ dibagian transaction_total akan menyesuaikan dengan harga travel_package maka kita akan panggil travel_package->price maka akan menggikuti dari harga tersebut.
⦁ transaction_status akan kita set dengan IN_CART
Setelah kita buat untuk insert data ke Transaksi selanjutnya kita akan panggil TransactionDetail, disini kita akan buat satu data, jadi ketika pengguna melakukan checkout maka pertama kali data yang akan dimasukkan pasti dari login dari data pengguna setelah itu pengguna bisa menambahkan data dari pengguna lain untuk data tersebut
⦁ transaction_id kita isi dengan transaction_id maksudnya sebelumnya data transaction yang sebelumnya sudah dibuat dan kita akan memanggil data tersebut di sini.
⦁ data username kita panggil dari Auth user, disini akan memanggil username dari user yang sedang login.
⦁ nationality secara default kita akan isi dengan ID
⦁ is_visa yang diset dengan False
⦁ doe_passport untuk death or exp dari passport, disini kita akan menggunakan fungsi carbon now() berarti waktu sekarang dan ditambah dengan addYears(5) disini kita akan membuat hardcode menjadi doe_passport seperti gambar yang diatas, disini kita akan membuat bagaimana cara agar doe_passport ini tidak di hardcode
Jadi clunya kalian bisa simpan sebuah datanya didalam table user dan kita akan redirect ke route checkout dengan $transaction_id
Selanjutnya kita akan buat source code untuk bagian remove sebelum membuat bagian remove terlebih dahulu kita buat dibagian create
Dibaigan create kita akan buat sebuah validasi langsung dari fungsi ini kita tidak menggunakan form request karena disini formnya cuma satu
Disini kita akan mencoba untuk menvalidate data yang masuk dari user yang isinya
⦁ username yang tadi kita masukkan untuk rules nya required string dan exist lalu kita pilih table user dan kita ambil juga table dari username
⦁ lalu ada validasi dari is_visa disini kita akan masukkan required|boolean jadi ini bisa diisi dengan true atau false
⦁ doe_passport yang cuma required saja
Lalu dilanjutkan dengan mengatur data untuk dimasukkan ke dalam transaction detail berarti kita akan memasukan data request yaitu dari $request->all(); mengambil semua data request lalu kita akan menambahkan data dari transaction_id jadi isi dari data ini kita akan menambahkan array.
Selanjutnya untuk menginsert data tersebut kita akan gunakan TransactionDetail lalu kita panggil fungsi create dari data yang kita buat sebelumnya request_all dan transaction_id.
Jika sudah dibuat langkah selanjutnya adalah mengambil data dari transaction di panggil dengan travel_package dan diikuti dengan fungsi failOrfind(&Id) dari transaction. Penjelasan gambar dari source code ada dibawah.
Selanjutnya kita akan membuat dibagian update karna didalam table yang kita buat ada total visa dan total transaksi berarti pada saat kita menambahkan orang kita akan melakukan update dari jumlah orang yang ditambahkan maka otomatis visa dan totalnya juga akan terupadate pada saat penambahan orang tersebut.
Disini kita akan membuat sebuah request is_ visa jadi ketika user mamasukan visanya dalam 30 hari / true maka disini kita bisa memasukkan $transaction dan $transaction_total yang kita tambah dengan += maksud dari tanda tersebut sama seperti gambar yang dibawah hanya saja tanda += lebih mempersingkat codingannya dan lebih rapi
Setelah mengupdate transaction total maka selanjutnya kita akan update dibagian additionnal_visa lalu selanjutnya kita akan tambahkan $transaction_total += dari harga $transaction->travel_package->price / dari harga paket travel
Lalu langkah selanjutnya kita akan menambahkan source code untuk bagian save dan ditambah redirect ke route checkout dengan Id transaction
Gambar dari semua function create yang dibuat
Selanjutnya kita masuk dibagian pembuatan function remove yang kita tuda sebelum membuat function create, dibagian remove hampir sama dengan function create cuma bedanya di bagian function remove ini kebalikan dari function create.
penjelasan dari source code remove diatas
⦁ dibagian varibale $item yang nilainya TransactionDetail dengan mengunakan fungsi findOrFail dengan parameter ($detail_id).
⦁ dibagian variable $transaction dengan value Transaction dengan relasi details dan travel_package dan ditambah fungsi findOrfail dari $item->transaction_id.
⦁ dibagian if $item->is_visa akan dikurangkan dari $transaction->transaction_total dengan $transaction->transaction_visa.
⦁ dan $transaction->transaction_total dikurangkan dengan $transaction->travel_package->price
⦁ lalu dibagian bawah tambahkan varibale $item->delete() untuk menghapus dari data tersebut
⦁ selanjutnya diredirect ke route checkout, dari $item->transaction_id
Selanjutnya pembuatan di bagian function success dibagian function success ini cuma menambahkan beberapa source code kita cuma menupdate dari IN_CART menjadi PENDING dan setelah sucses maka langsung di diarahkan ke halaman success.
0 komentar:
Post a Comment