public function products($do = '', $id = '') { $this->data['heading'] = 'Administrasi: Produk'; switch ($do) { case 'form': if (post('submit')) { $data = [User::primary() => User::current('id'), 'tgl_input' => date('Y-m-d'), 'id_kategori' => post('kategori'), 'nama' => post('nama'), 'gambar' => post('gambar'), 'tgl_masuk' => formatTanggal(post('tgl_masuk'), 'Y-m-d'), 'stok' => post('stok'), 'harga' => post('harga'), 'berat' => post('berat'), 'diskon' => post('diskon') ?: 0, 'keterangan' => post('keterangan', false)]; try { $upload = new Upload('gambar'); $data['gambar'] = $upload->doUpload(); } catch (Exception $e) { setAlert('error', $e->getMessage()); return redirect($this->uri->path()); } if (Product::save($data, $id)) { if ($id) { setAlert('success', 'Berhasil memperbarui data produk <b>' . $data['nama'] . '</b>'); } else { setAlert('success', 'Berhasil menambahkan produk <b>' . $data['nama'] . '</b>'); } return redirect('admin-shop/products'); } setAlert('error', 'Terjadi kesalahan dalam penyimpanan produk <b>' . $data['nama'] . '</b>'); return redirect($this->uri->path()); } if ($id) { $this->data['data'] = Product::show($id)->fetchOne(); } return $this->render('product-form', $this->data); break; case 'delete': if (Product::del($id)) { setAlert('success', 'Produk berhasil terhapus'); } else { setAlert('error', 'Terjadi kesalahan dalam penghapusan produk'); } return redirect('admin-shop/products'); break; default: $this->data['data'] = Product::show([], get('sort')); return $this->render('product-table', $this->data); break; } }