Monday, June 29, 2020

Tahap CheckOut Di Laravel






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