Skip to content

Commit ba68dc2

Browse files
committed
bug fix change session check to database check
solve #14
1 parent 1ac9d77 commit ba68dc2

File tree

2 files changed

+69
-49
lines changed

2 files changed

+69
-49
lines changed

application/controllers/Home.php

+59-49
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,19 @@ class Home extends CI_Controller
2222
* @see https://codeigniter.com/user_guide/general/urls.html
2323
*/
2424

25+
/**
26+
* Constructor
27+
*
28+
* @return void
29+
*/
2530
public function __construct()
2631
{
2732
parent::__construct();
2833
$this->load->database();
2934
$this->load->library('ion_auth', 'form_validation', 'session');
3035
$this->load->helper('url', 'language', 'my_helper');
3136
$this->load->model('Home_model');
37+
$this->load->model('Setting_model');
3238
}
3339

3440
public function index()
@@ -54,24 +60,28 @@ public function vote()
5460
// Get All Kandidat
5561
$kandidat_data = $this->Home_model->get_all('nourut', 'kandidat', 'ASC');
5662

57-
$data = array(
63+
// Get Settings
64+
$setting_q = $this->Setting_model->get_all('id', 'settings', 'ASC');
65+
$settings = $setting_q[0];
66+
$selesai = $selesai = DateTime::createFromFormat('Y-m-d H:i:s', $settings->selesai)->format('Y/m/d H:i:s');
5867

68+
$data = [
5969
// Data kandidat diambil dari database
6070
'kandidat_data' => $kandidat_data,
71+
'waktu_selesai' => $selesai,
72+
];
6173

62-
);
74+
$idpemilih = $this->session->userdata('userid');
6375

6476
// Check status sudah memilih atau belum
65-
$status = $this->session->userdata('status');
66-
if ($status === 'Belum Memilih') {
67-
$this->load->view('front/vote', $data);
68-
} elseif ($status === 'Sudah Memilih') {
69-
77+
if ($this->home_model->is_voted($idpemilih)) {
7078
$data = array(
7179
'nama' => $this->session->userdata('nama'),
7280
);
7381

74-
$this->load->view('front/terimakasih', $data);
82+
return $this->load->view('front/terimakasih', $data);
83+
} else {
84+
return $this->load->view('front/vote', $data);
7585
}
7686
}
7787

@@ -86,55 +96,55 @@ public function doVote($idkandidat)
8696
$idpemilih = $this->session->userdata('userid');
8797
// Tipe pemilih apakah guru atau siswa
8898
$tipe = $this->session->userdata('level');
89-
99+
90100
// Check status sudah memilih atau belum
91-
$status = $this->session->userdata('status');
92-
if ($status === 'Belum Memilih') {
93-
94-
// insertData
95-
$insertData = array(
96-
'tipe' => $tipe,
97-
'idpemilih' => $idpemilih,
98-
'idkandidat' => $idkandidat,
99-
);
100-
101-
// Insert data
102-
$this->Home_model->insert('data_pemilihan', $insertData);
103-
104-
// Update Session data
105-
$userData = array(
106-
'status' => 'Sudah Memilih'
107-
);
108-
$this->session->set_userdata($userData);
109-
110-
// Update Database data
111-
$updateData = array(
112-
'status' => 'Sudah Memilih'
113-
);
114-
$this->Home_model->update('id', $idpemilih, 'data_pemilih', $updateData);
115-
116-
// Menghitung jumlah perolehan suara
117-
$kandidatData = $this->Home_model->get_all('nourut', 'kandidat', 'DESC');
118-
foreach ($kandidatData as $row) {
119-
// Berdasarkan idkandidat yang ada
120-
$jumlahSuara = $this->Home_model->tampil_data('idkandidat', $row->idkandidat, 'data_pemilihan');
121-
$suaraData = array(
122-
'jumlahsuara' => $jumlahSuara,
123-
);
124-
// Update jumlah suara counter ke database
125-
$this->Home_model->update('idkandidat', $row->idkandidat, 'kandidat', $suaraData);
126-
};
127-
128-
redirect('vote', 'refresh');
129-
} else {
130-
redirect('home', 'refresh');
101+
if ($this->home_model->is_voted($idpemilih)) {
131102
$this->session->set_flashdata(
132103
'message',
133104
'<div class="alert alert-warning alert-dismissible">
134105
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>
135106
Anda sudah memilih </div>'
136107
);
108+
return redirect('home', 'refresh');
137109
}
110+
111+
// insertData
112+
$insertData = array(
113+
'tipe' => $tipe,
114+
'idpemilih' => $idpemilih,
115+
'idkandidat' => $idkandidat,
116+
);
117+
118+
// Insert data
119+
$this->Home_model->insert('data_pemilihan', $insertData);
120+
121+
// Update Session data
122+
$userData = array(
123+
'status' => 'Sudah Memilih'
124+
);
125+
126+
$this->session->set_userdata($userData);
127+
128+
// Update Database data
129+
$updateData = array(
130+
'status' => 'Sudah Memilih'
131+
);
132+
$this->Home_model->update('id', $idpemilih, 'data_pemilih', $updateData);
133+
134+
// Menghitung jumlah perolehan suara
135+
$kandidatData = $this->Home_model->get_all('nourut', 'kandidat', 'DESC');
136+
foreach ($kandidatData as $row) {
137+
// Berdasarkan idkandidat yang ada
138+
$jumlahSuara = $this->Home_model->tampil_data('idkandidat', $row->idkandidat, 'data_pemilihan');
139+
$suaraData = array(
140+
'jumlahsuara' => $jumlahSuara,
141+
);
142+
// Update jumlah suara counter ke database
143+
$this->Home_model->update('idkandidat', $row->idkandidat, 'kandidat', $suaraData);
144+
};
145+
146+
return redirect('vote', 'refresh');
147+
138148
}
139149
}
140150

application/models/Home_model.php

+10
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,16 @@ public function tampil_data($q, $idkandidat, $table)
4646
$this->db->where($q, $idkandidat);
4747
return $this->db->count_all_results($table);
4848
}
49+
50+
// Check sudah memilih atau belum
51+
public function is_voted($idpemilih)
52+
{
53+
$result = $this->get_by_id('id', $idpemilih, 'data_pemilih');
54+
if(!empty($result) && $result->status === 'Belum Memilih'){
55+
return false;
56+
}
57+
return true;
58+
}
4959
}
5060

5161
/* End of file Home_modal.php */

0 commit comments

Comments
 (0)