commit to user
66
if login { redirect mobileuserlogin, refresh;
} else { this-data-alamat = this-member-get_alamatdata[id_member];
data = this-member-get_alamatdata[id_member]; this-data-kurir=this-order_m-get_ship;
this-data-content=mobileorder;
this-load-viewmobileuser_view,this-data; } }
- Pada Model
Member
dan
order_m
Mengambil data alamat member yang login dari database
function get_alamatid_member {
this-db-fromalamat; this-db-joinkota,kota.id_kota=alamat.kota;
this-db-joinprovinsi,provinsi.id_provinsi=alamat.provinsi; this-db-whereid_member,id_member;
query=this-db-get-result; ifquery return query;
else return false; }
Mengambil data kurir dari database
function get_ship {
query=this-db-getkurir; return query-result;
}
4.1.5 Halaman Setelah Checkout
Berisi informasi setelah checkout, seperti total ongkos kirim dari alamat yang dipilih sebelumnya, total pembelian produk, total pembayaran dan
bank tujuan transfer.
commit to user
67
Gambar 4.6. Halaman Checkout Sukses Ketika pesanan ditambahkan, otomatis akan mengurangi stok dalam
database untuk produk yang dipesan, menghitung tarif ongkos kirim berdasarkan kurir dan alamat yang dipilih dan membuat order
Script untuk gambar 4. : -
Pada Controller
Kata log :
public function add_order {
login=this-session-userdatalog_in; id_member=login[id] ;
tgl_pesan = dateY-m-d; status=1;
id_alamat=this-input-postalamat; total=this-input-posttotal;
berat=this-input-postberat; jasa=this-input-postjasa;
almt = this-member-get_alamat_detid_alamat; idkota=almt-kota;
tarif=this-shipping_m-find_tarifidkota,jasa; akhir=this-order_m-get_last_order;
tgl=substrakhir-id_pesanan,0,8; id=substrakhir-id_pesanan,8;
Menentukan id pesanan berdasarkan id pesanan terakhir. Jika belum ada, maka id pesanan sama dengan 1, jika ada, id pesanan terakhir ditambah 1.
if tgl==dateYmd id=id+1; else id=1; id_pesanan=dateYmd.id;
commit to user
68
Menghitung biaya pengir iman berdasarkan parameter berat dan tarif per kg ongkir= this-hitung_ongkirberat,tarif-harga_kg;
total2=total+ongkir; Menambahkan ke database ke tabel pesanan
data=arrayid_pesanan=id_pesanan,tgl_pesan=tgl_pesan,status=status, id_member=id_member, “id_alamat=id_alamat, id_kurir=tarif-id_kurir,
ongkir=tarif-harga_kg; query=this-order_m-tmbh_orderdata;
id=this-input-postid_produk; qty=this-input-postqty;
if query { Menambahkan pesanan pada keranjang ke database tabel detail pesanan. Karena berjenis
array dan lebih dari satu, maka digunakan perulangan. foreachthis-cart-contents as items{
data=this-produk_m-get_productitems[id]; tot_brt=items[weight]items[qty];
data=arrayid_pesanan=id_pesanan, id_produk=items[id], jml=items[qty], harga=data-harga, berat=data-berat_gr;
query2=this-order_m-insert_detaildata; stok=items[stok]-items[qty];
data=arraystok=stok; this-produk_m-updateitems[id], data; }
if query2 { Jika sukses menyimpan, mengirimkan nilai total pembayaran pada halaman selanjutnya.
this-cart-destroy; this-data-idpesanan=id_pesanan;
this-data-tot_harga=total; this-data-total=total2;
this-data-ongkir = ongkir; this-data-content=mobileorder_done;
this-load-viewmobileuser_view,this-data; } else { this-data-content=mobileorder_error;
this-load-viewmobileuser_view,this-data; } } else { this-data-content=mobileorder_error;
this-load-viewmobileuser_view,this-data; } }
commit to user
69
Fungsi untuk menghitung biaya pengiriman
function hitung_ongkirberat, tarif {
brt=berat1000; if brt 0 {
if berat 1000 { brt = 1;
ongkir=tarifbrt; } else {
bulat=berat-brt; ongkir=tarifbulat1000+1; }
} else { brt=berat1000;
ongkir=tarifbrt; }
return ongkir; }
- Pada Model
order_m :
function tmbh_orderdata=array {
if this-db-insertpesanan,data return true; return false;
} function insert_detaildata=array {
if this-db-insertdetail_pesanan,data return true;
return false; }
4.1.6 Halaman Account User