private void LoadJenisPengeluaranBiaya()
        {
            IJenisPengeluaranBll bll = new JenisPengeluaranBll(_log);

            _listOfJenisPengeluaranBiaya = bll.GetAll();

            FillDataHelper.FillJenisPengeluaranBiaya(chkListBox, _listOfJenisPengeluaranBiaya);
        }
        private void ShowEntryJenisPengeluaran()
        {
            var isGrant = RolePrivilegeHelper.IsHaveHakAkses("mnuJenisPengeluaran", _pengguna);

            if (!isGrant)
            {
                MsgHelper.MsgWarning("Maaf Anda tidak mempunyai otoritas untuk mengakses menu ini");
                return;
            }

            IJenisPengeluaranBll jenisPengeluaranBll = new JenisPengeluaranBll(MainProgram.isUseWebAPI, MainProgram.baseUrl, _log);
            var frmEntryJenisPengeluaran             = new FrmEntryJenisPengeluaran("Tambah Data Jenis Biaya", jenisPengeluaranBll);

            frmEntryJenisPengeluaran.Listener = this;
            frmEntryJenisPengeluaran.ShowDialog();
        }
        private void gridControl_CurrentCellKeyDown(object sender, KeyEventArgs e)
        {
            if (KeyPressHelper.IsEnter(e))
            {
                var grid = (GridControl)sender;

                var rowIndex = grid.CurrentCell.RowIndex;
                var colIndex = grid.CurrentCell.ColIndex;

                JenisPengeluaran jenisPengeluaran = null;

                switch (colIndex)
                {
                case 2:     // pencarian berdasarkan nama jenis pengeluaran

                    GridCurrentCell cc         = grid.CurrentCell;
                    var             namaProduk = cc.Renderer.ControlValue.ToString();

                    IJenisPengeluaranBll bll   = new JenisPengeluaranBll(MainProgram.isUseWebAPI, MainProgram.baseUrl, _log);
                    var listOfJenisPengeluaran = bll.GetByName(namaProduk);

                    if (listOfJenisPengeluaran.Count == 0)
                    {
                        MsgHelper.MsgWarning("Data jenis pengeluaran tidak ditemukan");
                        GridListControlHelper.SelectCellText(grid, rowIndex, colIndex);
                    }
                    else if (listOfJenisPengeluaran.Count == 1)
                    {
                        jenisPengeluaran = listOfJenisPengeluaran[0];

                        if (!IsExist(jenisPengeluaran.jenis_pengeluaran_id))
                        {
                            SetItemJenisPengeluaran(grid, rowIndex, colIndex, jenisPengeluaran);
                            grid.Refresh();
                            RefreshTotal();

                            GridListControlHelper.SetCurrentCell(grid, rowIndex, colIndex + 1);
                        }
                        else
                        {
                            MsgHelper.MsgWarning("Data jenis pengeluaran sudah diinputkan");
                            GridListControlHelper.SetCurrentCell(grid, rowIndex, colIndex);
                        }
                    }
                    else     // data lebih dari satu, tampilkan form lookup
                    {
                        _rowIndex = rowIndex;
                        _colIndex = colIndex;

                        var frmLookup = new FrmLookupReferensi("Data Jenis Pengeluaran", listOfJenisPengeluaran);
                        frmLookup.Listener = this;
                        frmLookup.ShowDialog();
                    }

                    break;

                case 3:
                    GridListControlHelper.SetCurrentCell(grid, rowIndex, colIndex + 1);
                    break;

                case 4:
                    if (grid.RowCount == rowIndex)
                    {
                        _listOfItemPengeluaran.Add(new ItemPengeluaranBiaya());
                        grid.RowCount = _listOfItemPengeluaran.Count;
                    }

                    GridListControlHelper.SetCurrentCell(grid, rowIndex + 1, 2);     // fokus ke kolom kode produk
                    break;

                default:
                    break;
                }
            }
        }