/**
  * {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);
 }
Example #2
0
 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;
     }
 }
Example #3
0
 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;
     }
 }