/** * {inheritdoc} */ public static function show($where = [], $sort = false) { $db = static::db(); $join_primary = User::primary(); $sql = sprintf('SELECT a.*, b.username, b.email, b.aktif FROM %1$s a LEFT JOIN %2$s b USING (%3$s)', static::table(), User::table(), $join_primary); if (!empty($where)) { if (isset($where[static::$primary])) { $where['a.' . static::$primary] = $where[static::$primary]; unset($where[static::$primary]); } if (isset($where[$join_primary])) { $where['b.' . $join_primary] = $where[$join_primary]; unset($where[$join_primary]); } $where = $db->_parseWhere($where); $sql .= ' %s'; } return $db->query($sql, $where); }
public function users($do = '', $id = '') { $data = ['heading' => 'Administrasi: Pengguna']; switch ($do) { case 'form': if (post('submit')) { $data = ['username' => post('username'), 'email' => post('email')]; if (User::is('admin')) { $data['level'] = post('level'); } if ($password = post('password') and $password == post('passconf')) { $data['password'] = $password; } if (User::save($data, $id)) { if ($id) { set_alert('success', 'Berhasil memperbarui data pengguna <b>' . $data['username'] . '</b>'); } else { set_alert('success', 'Berhasil menambahkan <b>' . $data['username'] . '</b> sebagai pengguna'); } return redirect('admin/users'); } set_alert('error', 'Terjadi kesalahan dalam penyimpanan pengguna <b>' . $data['username'] . '</b>'); return redirect($this->uri->path()); } if ($id) { $data['data'] = User::show([User::primary() => $id])->fetchOne(); } return $this->render('user-form', $data); break; case 'delete': if (User::del([User::primary() => $id])) { set_alert('success', 'Pengguna berhasil terhapus'); } else { set_alert('error', 'Terjadi kesalahan dalam penghapusan pengguna'); } return redirect('admin/users'); break; default: $data['data'] = User::show(); return $this->render('user-table', $data); break; } }
public function checkout() { if (!User::current('id')) { redirect('login'); } if ($items = session('cart-items')) { $userId = User::current('id'); $userKey = User::primary(); $custKey = Customer::primary(); $pelanggan = Customer::show([$userKey => $userId])->fetchOne(); $order = [$userKey => $userId, $custKey => $pelanggan->{$custKey}, 'tanggal' => date('Y-m-d'), 'produk' => $items, 'belanja' => post('belanja'), 'kurir' => post('kurir'), 'ongkir' => post('ongkir'), 'bayar' => 0, 'kembali' => 0]; if (!$order['ongkir'] && !$order['kurir']) { setAlert('error', 'Estimasi ongkos kirim belum ada, pastikan field kurir sudah diisi.'); return redirect('cart'); } $order['total'] = $order['belanja'] + $order['ongkir']; if ($return = Order::add($order)) { session('cart-items', ''); setAlert('success', ['Terima kasih telah berbelanja di ' . conf('app.title') . '.', 'Segeralah melakukan pembayaran agar pesanan anda dapat secepatnya kami proses.']); } else { setAlert('error', 'Terjadi kesalahan dalam penghapusan order'); return redirect('cart'); } } if (User::loggedin()) { return redirect('admin-shop/orders/form/' . $return); } return redirect('shop'); }
public function banners($do = '', $id = '') { $this->data['heading'] = 'Administrasi: Banner'; switch ($do) { case 'form': if (post('submit')) { $data = [User::primary() => 1, 'tgl_input' => date('Y-m-d'), 'judul' => post('judul'), 'keterangan' => post('keterangan'), 'url' => post('url'), 'gambar' => post('gambar'), 'tgl_mulai' => formatTanggal(post('tgl_mulai'), 'Y-m-d'), 'tgl_akhir' => formatTanggal(post('tgl_akhir'), 'Y-m-d'), 'aktif' => post('aktif'), 'tipe' => post('tipe')]; try { $upload = new Upload('gambar'); $data['gambar'] = $upload->doUpload(); } catch (Exception $e) { setAlert('error', $e->getMessage()); } if (Banner::save($data, $id)) { if ($id) { setAlert('success', 'Berhasil memperbarui data banner <b>' . $data['judul'] . '</b>'); } else { setAlert('success', 'Berhasil menambahkan banner <b>' . $data['judul'] . '</b>'); } return redirect('admin-shop/banners'); } setAlert('error', 'Terjadi kesalahan dalam penyimpanan banner <b>' . $data['judul'] . '</b>'); return redirect($this->uri->path()); } else { if ($id) { $this->data['data'] = Banner::show([Banner::primary() => $id])->fetchOne(); } return $this->render('banner-form', $this->data); } break; case 'delete': if (Banner::del([Banner::primary() => $id])) { setAlert('success', 'Banner berhasil terhapus'); } else { setAlert('error', 'Terjadi kesalahan dalam penghapusan banner'); } return redirect('admin-shop/banners'); break; default: $this->data['data'] = Banner::show(); return $this->render('banner-table', $this->data); break; } }