View difference between Paste ID: CFTuwMp3 and 568HHg91
SHOW: | | - or go back to the newest paste.
1
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');  
2
class Cart extends CI_Controller {
3
/*
4
salah logika mas.. kayaknya salah target array
5
6
*/
7
	public function show(){	 
8
		$cart= array(
9
			'barangs'=> $this->cart->contents(),
10
			'total'=> $this->cart->total()		 
11
		);
12
		foreach($cart['barangs'] AS $id=>$data){ //$keys['values']
13
// foreach untuk perulangan data yang dinamis, berubah sesuai jumlah data yang ada
14
			//$cart['price'] = 
15
			$cart['barangs']['price'] =
16
				number_format($data['price'], 2, ',', '.');
17
			//$cart['subtotal'] 
18
		 	$cart['barangs']['subtotal'] =
19
			 number_format($data['subtotal'], 2, ',', '.');
20
		}
21
		$cart['total'] = number_format($cart['total'], 2, ',', '.');
22
		
23
		$content= array(
24
			'content'=> $this->parser->parse('cart_view', $cart, true)
25
		);
26
		$this->parser->parse('template', $content);
27
	}
28
29
//=====================
30
31
32
	function __construct() { 
33
		parent::__construct(); 
34
		$this->load->model('barang_model');		
35
		$this->load->model('cart_model');		
36
		$this->load->library("cart");		
37
	}
38
	public function index(){
39
		$this->show();
40
	}
41
42
	public function how_shop(){
43
		$content= array(
44
			'content'=> $this->load->view('cara_belanja', '', true)
45
		);
46
		$this->parser->parse('template', $content);
47
	}
48
	public function add($barang_id){
49
		$rows= $this->barang_model->buy_select($barang_id)->row_array();
50
		$data= array(
51
			'id'=> $rows['id'],
52-
		foreach($cart['barangs'] AS $keys['values']){ // foreach untuk perulangan data yang dinamis, berubah sesuai jumlah data yang ada
52+
53-
			$cart['price'] = number_format($keys['values']['price'], 2, ',', '.');
53+
54-
			$cart['subtotal'] = number_format($keys['values']['subtotal'], 2, ',', '.');
54+
55
			'options'=> array()
56
		);
57
		$this->cart->insert($data);
58
		$this->show();
59
	}
60
	public function edit(){
61
		$data=array();
62
		foreach ($this->cart->contents() as $items){
63
			$data = array_merge(
64
					$data,
65
					array(
66
						array(
67
							'rowid'=> $this->input->post('rowid_'.$items['rowid']),
68
							'qty'=> $this->input->post('qty_'.$items['rowid'])
69
						)
70
					)
71
			);
72
		}
73
		$this->cart->update($data);
74
		$this->show();	
75
	}
76
77
	public function finished(){
78
		/*
79
		$this->cart->destroy();
80
		redirect('barang/show');
81
		*/
82
		if(!is_login()){
83
			redirect('customer/form_login');
84
		}else{
85
			if(count($this->cart->contents())>0){
86
				$cart_number= $this->get_cart_number();
87
				$cart= array(
88
							'header' => array(
89
										'cart_nomor' => $cart_number,
90
										'cart_customer_id' => $this->session->userdata('customer_id'),
91
										'cart_tanggal' => mdate("%Y-%m-%d %H:%i:%s", time())
92
							),
93
							'detail' => array()
94
				);
95
				$i=0;
96
				foreach($this->cart->contents() AS $cart_detail){
97
					$cart['detail'][$i]['cart_nomor']=$cart_number;
98
					$cart['detail'][$i]['cart_barang_id']=$cart_detail['id'];
99
					$cart['detail'][$i]['cart_barang_qty']=$cart_detail['qty'];
100
					$cart['detail'][$i]['cart_barang_harga']=$cart_detail['price'];
101
					$i++;
102
				}
103
				$this->cart_model->insert($cart);
104
				$this->cart->destroy();
105
				$content= array(
106
							'content' => "<h2>Transaksi selesai, silakan lakukan pembayaran</h2>"
107
				);
108
				$this->parser->parse('template', $content);
109
			}else{
110
				redirect();
111
			}
112
		}
113
	}
114
	private function get_cart_number(){
115
		$customer_id= $this->session->userdata('customer_id');
116
		$count_cart= $this->cart_model->select_where($customer_id)->num_rows()+1;
117
		$cart_number= $customer_id.$count_cart;
118
		return $cart_number;
119
	}
120
}