private void AddPrintData(string no_penjualan)
        {
            StrukDataset.PenjualanRow penjualanRow = penjualans.NewPenjualanRow();
            penjualanRow.no_penjualan  = no_penjualan;
            penjualanRow.nama_kasir    = txtKasir.Text;
            penjualanRow.tgl_beli      = DateTime.Now;
            penjualanRow.nama_member   = txtNamaMember.Text;
            penjualanRow.total_harga   = lblSubtotal.Content.ToString();
            penjualanRow.total_item    = lblJumlahBarang.Content.ToString();
            penjualanRow.total         = lblTotalPembayaran.Text;
            penjualanRow.poin_terpakai = Convert.ToInt32(txtPoin.Text);
            penjualanRow.tunai         = Kenko.formatCurrency(double.Parse(Kenko.getNumber2(txtBayar.Text)));
            penjualanRow.kembalian     = lblKembalian.Content.ToString();

            penjualans.AddPenjualanRow(penjualanRow);

            foreach (DataRow row in dtPenjualan.Rows)
            {
                double harga = double.Parse(Kenko.getNumber(row["harga"].ToString()));
                StrukDataset.Detail_PenjualanRow detail_PenjualanRow = detail_Penjualans.NewDetail_PenjualanRow();
                detail_PenjualanRow.nama_obat = row["nama_obat"].ToString();
                detail_PenjualanRow.jumlah    = row["jumlah"].ToString();
                detail_PenjualanRow.harga     = Kenko.formatCurrency(harga);
                detail_Penjualans.AddDetail_PenjualanRow(detail_PenjualanRow);
            }
        }
        private void btnTambahGrid_Click(object sender, RoutedEventArgs e)
        {
            DataRowView dataRowView = (DataRowView)((Button)e.Source).DataContext;

            FormBeliObat fbo = new FormBeliObat(dataRowView[2].ToString(), dataRowView[1].ToString());

            fbo.ShowDialog();


            if (fbo.result)
            {
                double total = fbo.jumlah_beli * fbo.harga_beli;

                if (dtKeranjang.Rows.Count > 0)
                {
                    bool found = false;
                    for (int i = 0; i < dtKeranjang.Rows.Count; i++)
                    {
                        DataRow row = dtKeranjang.Rows[i];
                        if (row["id_obat"].ToString() == dataRowView[1].ToString() && row["tgl_exp"].ToString() == fbo.tgl_exp)
                        {
                            row["jumlah"]      = Convert.ToInt32(row["jumlah"].ToString()) + Convert.ToInt32(fbo.jumlah_beli);
                            row["harga_total"] = Kenko.formatCurrency(Convert.ToDouble(Kenko.getNumber(row["harga_total"].ToString())) + total);


                            jumlahBarang            = jumlahBarang + Convert.ToInt32(fbo.jumlah_beli);
                            subtotal                = subtotal + total;
                            lblJumlahBarang.Content = jumlahBarang;
                            lblSubtotal.Content     = Kenko.formatCurrency(subtotal);
                            lblTotalPembayaran.Text = Kenko.formatCurrency(subtotal);
                            found = true;
                        }
                    }

                    if (!found)
                    {
                        jumlahBarang = jumlahBarang + Convert.ToInt32(fbo.jumlah_beli);
                        subtotal     = subtotal + total;
                        dtKeranjang.Rows.Add(fbo.id_obat, fbo.nama_obat, fbo.tgl_exp, fbo.jumlah_beli, Kenko.formatCurrency(total), fbo.harga_beli, fbo.harga_jual);
                        lblJumlahBarang.Content = jumlahBarang;
                        lblSubtotal.Content     = Kenko.formatCurrency(subtotal);
                        lblTotalPembayaran.Text = Kenko.formatCurrency(subtotal);
                    }
                }
                else
                {
                    jumlahBarang = jumlahBarang + Convert.ToInt32(fbo.jumlah_beli);
                    subtotal     = subtotal + total;
                    dtKeranjang.Rows.Add(fbo.id_obat, fbo.nama_obat, fbo.tgl_exp, fbo.jumlah_beli, Kenko.formatCurrency(total), fbo.harga_beli, fbo.harga_jual);
                    lblJumlahBarang.Content = jumlahBarang;
                    lblSubtotal.Content     = Kenko.formatCurrency(subtotal);
                    lblTotalPembayaran.Text = Kenko.formatCurrency(subtotal);
                }

                dataKeranjang.ItemsSource = dtKeranjang.DefaultView;
            }
        }
        private void btnHapusGrid_Click(object sender, RoutedEventArgs e)
        {
            DataRowView dataRowView = (DataRowView)((Button)e.Source).DataContext;

            subtotal                = subtotal - double.Parse(dataRowView[3].ToString());
            jumlahBarang            = jumlahBarang - int.Parse(dataRowView[2].ToString());
            lblSubtotal.Content     = Kenko.formatCurrency(subtotal);
            lblJumlahBarang.Content = jumlahBarang;
            dtPenjualan.Rows.Remove(dataRowView.Row);
            dataPenjualan.ItemsSource = dtPenjualan.DefaultView;
            lblTotalPembayaran.Text   = "0";
        }
 private void txtPoin_KeyDown(object sender, KeyEventArgs e)
 {
     if (e.Key == Key.Enter)
     {
         if (int.Parse(txtJumlahPoin.Text) < int.Parse(txtPoin.Text))
         {
             MessageBox.Show("Poin tidak mencukupi", "Gagal", MessageBoxButton.OK, MessageBoxImage.Error);
         }
         else
         {
             double total = subtotal - double.Parse(txtPoin.Text);
             lblTotalPembayaran.Text = Kenko.formatCurrency(total);
             MessageBox.Show(txtPoin.Text + " telah berhasil digunakan", "Berhasil", MessageBoxButton.OK, MessageBoxImage.Information);
         }
     }
 }
        private void txtBayar_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.Enter)
            {
                double totalPembayaran = Convert.ToDouble(Kenko.getNumber(lblTotalPembayaran.Text));
                double bayar           = double.Parse(Kenko.getNumber2(txtBayar.Text));
                if (bayar < totalPembayaran)
                {
                    MessageBox.Show("Uang pembayaran tidak mencukupi", "Gagal", MessageBoxButton.OK, MessageBoxImage.Error);
                }
                else
                {
                    double kembalian = double.Parse(Kenko.getNumber2(txtBayar.Text)) - totalPembayaran;
                    lblKembalian.Content = Kenko.formatCurrency(kembalian);

                    btnBayar.IsEnabled = true;
                }
            }
        }
        private void btnTambahGrid_Click(object sender, RoutedEventArgs e)
        {
            DataRowView dataRowView = (DataRowView)((Button)e.Source).DataContext;

            //Mengambil content dari dataMaster kolom 5 (jumlah)
            ContentPresenter jml = dataMaster.Columns[5].GetCellContent(dataRowView) as ContentPresenter;

            var myTemplate = jml.ContentTemplate;

            //Cek apakah myTemplate null atau tidak
            if (myTemplate != null)
            {
                TextBox jumlah = myTemplate.FindName("txtJumlah", jml) as TextBox;

                // Jika jumlah kosong
                if (jumlah.Text == "")
                {
                    MessageBox.Show("Silahkan isi jumlah beli terlebih dahulu.", "Informasi", MessageBoxButton.OK, MessageBoxImage.Information);
                }
                else
                {
                    // Jika stok kurang dari text jumlah
                    if (Convert.ToInt32(dataRowView[7].ToString()) < Convert.ToInt32(jumlah.Text))
                    {
                        MessageBox.Show("Stok tidak mencukupi.", "Gagal", MessageBoxButton.OK, MessageBoxImage.Error);
                    }
                    else
                    {
                        // Menghitung total, text  jumlah * dengan harga jual
                        double total = Double.Parse(jumlah.Text) * Double.Parse(dataRowView[9].ToString());

                        // Jika keranjang ada barangnya
                        if (dtPenjualan.Rows.Count > 0)
                        {
                            bool found = false;
                            for (int i = 0; i < dtPenjualan.Rows.Count; i++)
                            {
                                DataRow row = dtPenjualan.Rows[i];
                                //jika obat dari keranjang == obat dari datagrid obat
                                if (row["id_obat"].ToString() == dataRowView[1].ToString())
                                {
                                    int jumlahPembelianKeranjang = Convert.ToInt32(row["jumlah"].ToString()) + Convert.ToInt32(jumlah.Text);

                                    // Jika jumlah pembelian di keranjang melebihi yang ada di database
                                    if (jumlahPembelianKeranjang > Convert.ToInt32(dataRowView[7].ToString()))
                                    {
                                        MessageBox.Show("Stok tidak mencukupi.", "Gagal", MessageBoxButton.OK, MessageBoxImage.Error);
                                    }
                                    else
                                    {
                                        row["jumlah"] = jumlahPembelianKeranjang;
                                        row["harga"]  = Convert.ToDouble(Kenko.getNumber(row["harga"].ToString())) + total;

                                        jumlahBarang            = jumlahBarang + Convert.ToInt32(jumlah.Text);
                                        subtotal                = subtotal + total;
                                        lblJumlahBarang.Content = jumlahBarang;
                                        lblSubtotal.Content     = Kenko.formatCurrency(subtotal);
                                        lblTotalPembayaran.Text = Kenko.formatCurrency(subtotal);
                                    }
                                    found = true;
                                }
                            }

                            //Jika tidak ada di keranjang, maka data langsung ditambahkan ke row baru,
                            //tidak mengakumulasikan jumlah barang dari keranjang
                            if (!found)
                            {
                                jumlahBarang = jumlahBarang + Convert.ToInt32(jumlah.Text);
                                subtotal     = subtotal + total;
                                dtPenjualan.Rows.Add(dataRowView[1].ToString(), dataRowView[2].ToString(), jumlah.Text, Kenko.formatCurrency(total));
                                lblJumlahBarang.Content = jumlahBarang;
                                lblSubtotal.Content     = Kenko.formatCurrency(subtotal);
                                lblTotalPembayaran.Text = Kenko.formatCurrency(subtotal);
                            }
                        }
                        else
                        {
                            jumlahBarang = jumlahBarang + Convert.ToInt32(jumlah.Text);
                            subtotal     = subtotal + total;

                            //Menambahkan baris ke dtPenjualan
                            dtPenjualan.Rows.Add(dataRowView[1].ToString(), dataRowView[2].ToString(), jumlah.Text, Kenko.formatCurrency(total));
                            lblJumlahBarang.Content = jumlahBarang;
                            lblSubtotal.Content     = Kenko.formatCurrency(subtotal);
                            lblTotalPembayaran.Text = Kenko.formatCurrency(subtotal);
                        }

                        dataPenjualan.ItemsSource = dtPenjualan.DefaultView;
                        jumlah.Text = "0";
                    }
                }
            }
            else
            {
                MessageBox.Show("Silahkan isi jumlah beli terlebih dahulu.", "Informasi", MessageBoxButton.OK, MessageBoxImage.Information);
            }
        }