private Period GetData()
        {
            Period entity = new Period();
            entity.period_id = Converts.ParseLong(keyCode);
            entity.period_group_id = Converts.ParseLong(cboPeriodGr.SelectedValue.ToString());
            entity.period_code = txtPeriodCode.Text;
            entity.period_date = dpPeriodDate.Value;
            entity.active = chkActive.Checked;

            entity.created_by = "SYSTEM";
            entity.created_date = DateTime.Now;
            entity.updated_by = "SYSTEM";
            entity.updated_date = DateTime.Now;
            return entity;
        }
        private void LoadData()
        {
            Period entity = new Period();
            if (mode == ObjectState.Edit && !string.IsNullOrEmpty(keyCode))
            {
                entity.period_id = Converts.ParseLong(keyCode);
                entity = ServiceProvider.PeriodService.FindByKeys(entity, true);

                txtPeriodCode.Text = entity.period_code;
                dpPeriodDate.Value = entity.period_date.Value;
                cboPeriodGr.SelectedValue = entity.period_group_id.ToString();
                chkActive.Checked = entity.active;
            }
            else
            {
                txtPeriodCode.Text = String.Empty;
                dpPeriodDate.Value = DateTime.Now;
                cboPeriodGr.SelectedValue = String.Empty;
                chkActive.Checked = false;
            }
            EnableMode();
        }
        private void LoadHeadData()
        {
            StockHead entity = new StockHead();

            if (base.FormMode == ObjectState.Edit && !string.IsNullOrEmpty(base.FormKeyCode))
            {
                entity.stock_head_id = Converts.ParseLong(base.FormKeyCode);
                entity = ServiceProvider.StockHeadService.FindByKeys(entity, true);
                Period periodEntity = new Period() { period_id = entity.period_id };
                periodEntity = ServiceProvider.PeriodService.FindByKeys(periodEntity, false);

                PeriodGroup periodGroupEntity = new PeriodGroup() { period_group_id = periodEntity.period_group_id };

                ddlPeriodGroup.DataSource = ServiceProvider.PeriodGroupService.FindByActiveOrID(periodGroupEntity);
                ddlPeriodGroup.ValueMember = "Value";
                ddlPeriodGroup.DisplayMember = "Display";

                ddlPeriodGroup.SelectedValue = periodGroupEntity.period_group_id.ToString();
                
                DataSet ds = ServiceProvider.PeriodService.FindDataSetByParentKey(periodEntity);
                List<ComboBoxDTO> lstComboboxDTO = new List<ComboBoxDTO>();
                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    ComboBoxDTO dto = new ComboBoxDTO();
                    dto.Value = dr["period_id"].ToString();
                    dto.Display = dr["period_code"].ToString() + ":" + DateTime.Parse(dr["period_date"].ToString()).ConvertDateToDisplay();
                    lstComboboxDTO.Add(dto);

                }
                lstComboboxDTO.SetPleaseSelect();

                ddlPeriod.DataSource = lstComboboxDTO;
                ddlPeriod.ValueMember = "Value";
                ddlPeriod.DisplayMember = "Display";

                ddlPeriod.SelectedValue = entity.period_id.ToString();

                ddlWarehouse.DataSource = ServiceProvider.WareHouseService.FindByActiveOrID(new WareHouse() { warehouse_id = entity.warehouse_id });
                ddlWarehouse.ValueMember = "Value";
                ddlWarehouse.DisplayMember = "Display";

                ddlWarehouse.SelectedValue = entity.warehouse_id.ToString();

                txtRemark.Text = entity.remark;
                lblDocumentNo.Text = entity.transaction_no;
                lblDocumentDate.Text = entity.transaction_date.ConvertDateToDisplay();
                lblStatus.Text = (entity.transaction_status == TransactionStatus.IN.FinalCode) ? TransactionStatus.IN.FinalText : TransactionStatus.IN.NormalText;
                this._documentStatus = entity.transaction_status;
            }
            else
            {
                ddlPeriodGroup.DataSource = ServiceProvider.PeriodGroupService.FindByActiveOrID();
                ddlPeriodGroup.ValueMember = "Value";
                ddlPeriodGroup.DisplayMember = "Display";

                List<ComboBoxDTO> lstCombobox = new List<ComboBoxDTO>();
                lstCombobox.SetPleaseSelect();

                ddlPeriod.DataSource = lstCombobox;
                ddlPeriod.ValueMember = "Value";
                ddlPeriod.DisplayMember = "Display";

                ddlWarehouse.DataSource = ServiceProvider.WareHouseService.FindByActiveOrID();
                ddlWarehouse.ValueMember = "Value";
                ddlWarehouse.DisplayMember = "Display";

                txtRemark.Text = string.Empty;
                lblDocumentNo.Text = GeneralMessage.AutoRunningDocumentNo;
                lblDocumentDate.Text = DateTime.Now.ConvertDateToDisplay();
                lblStatus.Text = TransactionStatus.IN.FinalText;
            }

            InitialDetailData();
            EnableModeHead();
            EnableModeDetail();
        }