public int Create(Pembukuan buku)
        {
            int result = 0;

            string sql = @"INSERT INTO Pembukuan (Tanggal, Item, Debit, Kredit, Saldo, Laba, Keterangan)
                        VALUES (@Tanggal, @Item, @Debit, @Kredit, @Saldo, @Laba, @Keterangan)";

            using (MySqlCommand cmd = new MySqlCommand(sql, _conn))
            {
                cmd.Parameters.AddWithValue("@Tanggal", buku.Tanggal);
                cmd.Parameters.AddWithValue("@Item", buku.Item);
                cmd.Parameters.AddWithValue("@Debit", buku.Debit);
                cmd.Parameters.AddWithValue("@Kredit", buku.Kredit);
                cmd.Parameters.AddWithValue("@Saldo", buku.Saldo);
                cmd.Parameters.AddWithValue("@Laba", buku.Laba);
                cmd.Parameters.AddWithValue("@Keterangan", buku.Keterangan);

                try
                {
                    result = cmd.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    System.Diagnostics.Debug.Print("Create error: {0}", ex.Message);
                }
            }

            return(result);
        }
        public int Create(Pembukuan buku)
        {
            int result = 0;

            if (string.IsNullOrEmpty(buku.Tanggal.ToString()))
            {
                MessageBox.Show("Tanggal harus diisi !", "Peringatan", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return(0);
            }

            if (string.IsNullOrEmpty(buku.Item))
            {
                MessageBox.Show("Nama item harus diisi !", "Peringatan", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return(0);
            }

            using (DbContext context = new DbContext())
            {
                _repository = new PembukuanRepository(context);
                result      = _repository.Create(buku);
            }

            if (result > 0)
            {
                MessageBox.Show("Data item berhasil ditambahkan!", "Informasi", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                MessageBox.Show("Data item gagal ditambahkan!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            return(result);
        }
 public FrmInputPembukuan(string title, PembukuanController controller, DateTime tanggal) : this()
 {
     lblHeader.Text  = title;
     this.controller = controller;
     this.tanggal    = tanggal;
     selisihBuku     = new Pembukuan();
 }
        public int Update(Pembukuan buku, Pembukuan buku1)
        {
            int    result = 0, result1 = 0;
            string tanggal = buku1.Tanggal.ToString("yyyyMMdd");

            string sql  = @"UPDATE Pembukuan SET Tanggal = @Tanggal, Item = @Item, Debit = @Debit, Kredit = @Kredit,
                            Saldo = @Saldo, Laba = @Laba, Keterangan = @Keterangan WHERE ID = @ID";
            string sql1 = @"CALL UpdateSaldo(@Tanggal, @ID, @Saldo, @Kredit, @Debit)";

            using (MySqlCommand cmd = new MySqlCommand(sql, _conn))
            {
                cmd.Parameters.AddWithValue("@Tanggal", buku.Tanggal);
                cmd.Parameters.AddWithValue("@Item", buku.Item);
                cmd.Parameters.AddWithValue("@Debit", buku.Debit);
                cmd.Parameters.AddWithValue("@Kredit", buku.Kredit);
                cmd.Parameters.AddWithValue("@Saldo", buku.Saldo);
                cmd.Parameters.AddWithValue("@Laba", buku.Laba);
                cmd.Parameters.AddWithValue("@Keterangan", buku.Keterangan);
                cmd.Parameters.AddWithValue("@ID", buku.ID);

                try
                {
                    result = cmd.ExecuteNonQuery();

                    using (MySqlCommand cmd1 = new MySqlCommand(sql1, _conn))
                    {
                        cmd1.Parameters.AddWithValue("@Tanggal", tanggal);
                        cmd1.Parameters.AddWithValue("@ID", buku1.ID);
                        cmd1.Parameters.AddWithValue("@Saldo", buku1.Saldo);
                        cmd1.Parameters.AddWithValue("@Kredit", buku1.Kredit);
                        cmd1.Parameters.AddWithValue("@Debit", buku1.Debit);

                        try
                        {
                            result1 = cmd1.ExecuteNonQuery();
                        }
                        catch (Exception ex)
                        {
                            System.Diagnostics.Debug.Print("Update saldo error: {0}", ex.Message);
                        }
                    }
                }
                catch (Exception ex)
                {
                    System.Diagnostics.Debug.Print("Update error: {0}", ex.Message);
                }
            }

            return(result);
        }
Esempio n. 5
0
        private void btnUbah_Click(object sender, EventArgs e)
        {
            if (dgv.SelectedRows.Count > 0)
            {
                Pembukuan buku = listOfBuku[dgv.CurrentCell.RowIndex];

                FrmInputPembukuan fInput = new FrmInputPembukuan("Tambah Data", buku, controller, dtTanggal.Value);
                fInput.OnUpdate += OnUpdateEventHandler;
                fInput.ShowDialog();
            }
            else
            {
                MessageBox.Show("Data belum dipilih", "Peringatan", MessageBoxButtons.OK,
                                MessageBoxIcon.Exclamation);
            }
        }
Esempio n. 6
0
        private void OnUpdateEventHandler(Pembukuan buku)
        {
            int index = dgv.CurrentCell.RowIndex;

            DataGridViewRow row = (DataGridViewRow)dgv.Rows[index].Clone();

            row.Cells[1].Value = buku.ID;
            row.Cells[2].Value = buku.Item;
            row.Cells[3].Value = buku.Debit;
            row.Cells[4].Value = buku.Kredit;
            row.Cells[5].Value = buku.Saldo;
            row.Cells[6].Value = buku.Laba;
            row.Cells[7].Value = buku.Keterangan;

            TampilData();
        }
        public FrmInputPembukuan(string title, Pembukuan obj, PembukuanController controller, DateTime tanggal) : this()
        {
            lblHeader.Text  = title;
            this.controller = controller;
            this.tanggal    = tanggal;

            isNewData = false;
            buku      = obj;

            bukuAwal        = new Pembukuan();
            bukuAwal.Debit  = buku.Debit;
            bukuAwal.Kredit = buku.Kredit;
            bukuAwal.Saldo  = buku.Saldo;

            selisihBuku = new Pembukuan();

            this.ID          = buku.ID;
            txtNamaItem.Text = buku.Item;

            if (buku.Kredit == 0 && buku.Debit == 0)
            {
                cmbJenisDana.SelectedIndex = 2;
                txtNominalDana.Text        = buku.Saldo.ToString();
            }
            else if (buku.Debit == 0)
            {
                cmbJenisDana.SelectedIndex = 1;
                txtNominalDana.Text        = buku.Kredit.ToString();
            }
            else if (buku.Kredit == 0)
            {
                cmbJenisDana.SelectedIndex = 0;
                txtNominalDana.Text        = buku.Debit.ToString();
            }

            if (buku.Laba != 0)
            {
                txtNominalLaba.Text = buku.Laba.ToString();
            }

            if (buku.Keterangan != "-")
            {
                txtKeterangan.Text = buku.Keterangan;
            }
        }
        public List <Pembukuan> ReadByDate(DateTime tanggalAwal, DateTime tanggalAkhir)
        {
            var formatTglAwal  = tanggalAwal.ToString("yyyy-MM-dd");
            var formatTglAkhir = tanggalAkhir.ToString("yyyy-MM-dd");

            List <Pembukuan> listOfBuku = new List <Pembukuan>();

            try
            {
                string sql = @"SELECT*FROM Pembukuan WHERE Tanggal BETWEEN @TanggalAwal AND @TanggalAkhir
                                ORDER BY Tanggal ASC";

                using (MySqlCommand cmd = new MySqlCommand(sql, _conn))
                {
                    cmd.Parameters.AddWithValue("@TanggalAwal", formatTglAwal);
                    cmd.Parameters.AddWithValue("@TanggalAkhir", formatTglAkhir);

                    using (MySqlDataReader dtr = cmd.ExecuteReader())
                    {
                        while (dtr.Read())
                        {
                            var buku = new Pembukuan();

                            buku.ID         = dtr["ID"].ToString();
                            buku.Tanggal    = DateTime.Parse(dtr["Tanggal"].ToString());
                            buku.Item       = dtr["Item"].ToString();
                            buku.Debit      = double.Parse(dtr["Debit"].ToString());
                            buku.Kredit     = double.Parse(dtr["Kredit"].ToString());
                            buku.Saldo      = double.Parse(dtr["Saldo"].ToString());
                            buku.Laba       = double.Parse(dtr["Laba"].ToString());
                            buku.Keterangan = dtr["Keterangan"].ToString();

                            listOfBuku.Add(buku);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.Print("ReadByDate error: {0}", ex.Message);
            }

            return(listOfBuku);
        }
        public List <Pembukuan> ReadByMonth(int bulan, int tahun)
        {
            List <Pembukuan> listOfBuku = new List <Pembukuan>();

            try
            {
                string sql = @"SELECT CONCAT(NamaPanjangBulan(MONTH(Tanggal)), ' ', YEAR(Tanggal)) AS Bulan, 
                            SUM(Debit) AS totalDebit, SUM(Kredit) AS totalKredit, (SELECT Saldo FROM Pembukuan 
                            WHERE (MONTH(Tanggal) = @Bulan) AND (YEAR(Tanggal) = @Tahun) 
                            ORDER BY ID DESC LIMIT 1) AS saldoAkhir, SUM(Laba) AS totalLaba
                            FROM Pembukuan WHERE (MONTH(Tanggal) = @Bulan) AND (YEAR(Tanggal) = @Tahun)
                            ORDER BY Bulan ASC";

                using (MySqlCommand cmd = new MySqlCommand(sql, _conn))
                {
                    cmd.Parameters.AddWithValue("@Bulan", bulan);
                    cmd.Parameters.AddWithValue("@Tahun", tahun);

                    using (MySqlDataReader dtr = cmd.ExecuteReader())
                    {
                        while (dtr.Read())
                        {
                            var buku = new Pembukuan();

                            buku.Keterangan = dtr["Bulan"].ToString();  // Menyimpan bulan dan tahun
                            buku.Debit      = double.Parse(dtr["totalDebit"].ToString());
                            buku.Kredit     = double.Parse(dtr["totalKredit"].ToString());
                            buku.Saldo      = double.Parse(dtr["saldoAkhir"].ToString());
                            buku.Laba       = double.Parse(dtr["totalLaba"].ToString());

                            listOfBuku.Add(buku);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.Print("ReadByMonth error: {0}", ex.Message);
            }

            return(listOfBuku);
        }
        public int Delete(Pembukuan buku)
        {
            int    result = 0, result1 = 0;
            string tanggal = buku.Tanggal.ToString("yyyyMMdd");

            string sql  = @"CALL UpdateSaldo(@Tanggal, @ID, @Saldo, @Kredit, @Debit)";
            string sql1 = @"DELETE FROM Pembukuan WHERE ID = @ID";

            using (MySqlCommand cmd = new MySqlCommand(sql, _conn))
            {
                cmd.Parameters.AddWithValue("@Tanggal", tanggal);
                cmd.Parameters.AddWithValue("@ID", buku.ID);
                cmd.Parameters.AddWithValue("@Saldo", buku.Saldo);
                cmd.Parameters.AddWithValue("@Kredit", buku.Kredit);
                cmd.Parameters.AddWithValue("@Debit", buku.Debit);

                try
                {
                    result = cmd.ExecuteNonQuery();

                    using (MySqlCommand cmd1 = new MySqlCommand(sql1, _conn))
                    {
                        cmd1.Parameters.AddWithValue("@ID", buku.ID);

                        try
                        {
                            result1 = cmd1.ExecuteNonQuery();
                        }
                        catch (Exception ex)
                        {
                            System.Diagnostics.Debug.Print("Delete error: {0}", ex.Message);
                        }
                    }
                }
                catch (Exception ex)
                {
                    System.Diagnostics.Debug.Print("Update saldo error: {0}", ex.Message);
                }
            }

            return(result1);
        }
        public List <Pembukuan> ReadAll()
        {
            List <Pembukuan> listOfBuku = new List <Pembukuan>();

            try
            {
                string sql = @"SELECT*FROM Pembukuan ORDER BY Tanggal ASC";

                using (MySqlCommand cmd = new MySqlCommand(sql, _conn))
                {
                    using (MySqlDataReader dtr = cmd.ExecuteReader())
                    {
                        while (dtr.Read())
                        {
                            var buku = new Pembukuan();

                            buku.ID         = dtr["ID"].ToString();
                            buku.Tanggal    = DateTime.Parse(dtr["Tanggal"].ToString());
                            buku.Item       = dtr["Item"].ToString();
                            buku.Debit      = double.Parse(dtr["Debit"].ToString());
                            buku.Kredit     = double.Parse(dtr["Kredit"].ToString());
                            buku.Saldo      = double.Parse(dtr["Saldo"].ToString());
                            buku.Laba       = double.Parse(dtr["Laba"].ToString());
                            buku.Keterangan = dtr["Keterangan"].ToString();

                            listOfBuku.Add(buku);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.Print("ReadAll error: {0}", ex.Message);
            }

            return(listOfBuku);
        }
Esempio n. 12
0
        private void btnHapus_Click(object sender, EventArgs e)
        {
            if (dgv.SelectedRows.Count > 0)
            {
                var konfirmasi = MessageBox.Show("Apakah data terpilih ingin dihapus?", "Konfirmasi", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

                if (konfirmasi == DialogResult.Yes)
                {
                    Pembukuan buku = listOfBuku[dgv.CurrentCell.RowIndex];

                    var result = controller.Delete(buku);

                    if (result > 0)
                    {
                        TampilData();
                    }
                }
            }
            else
            {
                MessageBox.Show("Data belum dipilih", "Peringatan", MessageBoxButtons.OK,
                                MessageBoxIcon.Exclamation);
            }
        }
        private void btnSimpan_Click(object sender, EventArgs e)
        {
            if (isNewData)
            {
                buku       = new Pembukuan();
                bukuAwal   = new Pembukuan();
                buku.Saldo = controller.GetLastSaldo(tanggal);
            }

            buku.ID      = ID;
            buku.Tanggal = tanggal;
            buku.Item    = txtNamaItem.Text;

            if (cmbJenisDana.SelectedIndex == 0)
            {
                buku.Debit = double.Parse(txtNominalDana.Text);

                if (bukuAwal.Debit > buku.Debit)
                {
                    var selisih = bukuAwal.Debit - buku.Debit;
                    buku.Saldo -= selisih;
                }
                else
                {
                    var selisih = buku.Debit - bukuAwal.Debit;
                    buku.Saldo += selisih;
                }
            }
            else if (cmbJenisDana.SelectedIndex == 1)
            {
                buku.Kredit = double.Parse(txtNominalDana.Text);

                if (bukuAwal.Kredit > buku.Kredit)
                {
                    var selisih = bukuAwal.Kredit - buku.Kredit;
                    buku.Saldo += selisih;
                }
                else
                {
                    var selisih = buku.Kredit - bukuAwal.Kredit;
                    buku.Saldo -= selisih;
                }
            }
            else
            {
                buku.Saldo = double.Parse(txtNominalDana.Text);
            }

            if (txtNominalLaba.Text != "")
            {
                buku.Laba = double.Parse(txtNominalLaba.Text);
            }

            buku.Keterangan = txtKeterangan.Text;

            selisihBuku.Tanggal = buku.Tanggal;
            selisihBuku.ID      = buku.ID;
            selisihBuku.Saldo   = bukuAwal.Saldo - buku.Saldo;
            selisihBuku.Debit   = bukuAwal.Debit - buku.Debit;
            selisihBuku.Kredit  = bukuAwal.Kredit - buku.Kredit;

            int result = 0;

            if (isNewData)
            {
                result = controller.Create(buku);

                if (result > 0)
                {
                    OnCreate(buku);

                    var reset = new GeneralSetting();
                    reset.ClearTxt(this);
                    cmbJenisDana.SelectedIndex = -1;
                    txtNamaItem.Focus();
                }
            }
            else
            {
                result = controller.Update(buku, selisihBuku);

                if (result > 0)
                {
                    OnUpdate(buku);
                    this.Close();
                }
            }
        }
Esempio n. 14
0
 private void OnCreateEventHandler(Pembukuan buku)
 {
     listOfBuku.Add(buku);
     TampilData();
 }