private bool KeHoachSanXuatTheoTramList_Init()
        {
            if (KeHoachSanXuatTheoTramList_Exist == true)
            {
                if (tabControl1.TabPages.Contains(KeHoachSanXuatTheoTramList_MasterDatabase.MasterDatabase_Tab) == false)
                {
                    tabControl1.TabPages.Insert(tabControl1.TabPages.Count, KeHoachSanXuatTheoTramList_MasterDatabase.MasterDatabase_Tab);
                }
                tabControl1.SelectTab("KeHoachSanXuatTheoTram");
                return true;
            }
            KeHoachSanXuatTheoTramList_Exist = true;
            Init_KeHoachSanXuatTheoTram_Excel();
            KeHoachSanXuatTheoTramList_MasterDatabase = new MaterDatabase(OpenXL, tabControl1, "KeHoachSanXuatTheoTram", ProductionPlanByWorkStation_Index, MasterDatabase_Connection_Str,
                                                            KeHoachSanXuatTheoTramList_Init_Database_CMD, KeHoachSanXuatTheoTramList_Select_CMD,
                                                            3, KeHoachSanXuatTheoTram_Excel_Struct, filterStatusLabel, showAllLabel,
                                                            StatusLabel1, StatusLabel2, ProgressBar1);

            // Empl_Skill_List_MasterDatabase.MasterDatabase_GridviewTBL.dataGridView_View.Columns["Line_ID"].Frozen = true;
            KeHoachSanXuatTheoTramList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.BackgroundColor = Color.White;
            PosSize possize = new PosSize();
            possize.pos_x = 6;
            possize.pos_y = 6;

            //Dho-Fixme: Do we need to use the button "Check_BT"?
            //Check_BT = new Button_Lbl(1, KeHoachSanXuatTheoTramList_MasterDatabase.MasterDatabase_Tab, "Check", possize, (AnchorStyles)AnchorStyles.Left | AnchorStyles.Top);
            return true;
        }
        public WorkStation_Select(string [] wst_List)
        {
            InitializeComponent();

            this.MinimizeBox = false;
            this.MaximizeBox = false;
            InitializeComponent();
            // this.AcceptButton = Select_BT;

            string cur_wst;
            int total = wst_List.Count();
            int i = 0;
            PosSize possize = new PosSize();
            bt_list = new Button_Lbl[total];

            for (i = 0; i < total; i++)
            {
                cur_wst = wst_List[i].ToString().Trim();
                if (cur_wst != "")
                {
                    possize.pos_x = 6 + (i % 5) * 110;
                    possize.pos_y = 6 + (i / 5) * 28;
                    bt_list[i] = new Button_Lbl(i, null, wst_List[i], possize, (AnchorStyles)AnchorStyles.Left | AnchorStyles.Top);
                    bt_list[i].My_Button.Click += new EventHandler(Button_Click);
                    this.AcceptButton = bt_list[i].My_Button;
                    bt_list[i].My_Button.DialogResult = DialogResult.OK;
                    this.Controls.Add(bt_list[i].My_Button);
                }
            }

            this.CancelButton = Cancel_BT;
            // Select_BT.DialogResult = DialogResult.OK;
            Cancel_BT.DialogResult = DialogResult.Cancel;
            // DialogResult dialogResult = this.ShowDialog();
        }
        private bool R_007_Emlpoyee_In_WST_Count_Init()
        {
            if (R_007_Emlpoyee_In_WST_Count_Exist == true)
            {
                if (tabControl1.TabPages.Contains(R_007_Emlpoyee_In_WST_Count_MasterDatabase.MasterDatabase_Tab) == false)
                {
                    tabControl1.TabPages.Insert(tabControl1.TabPages.Count, R_007_Emlpoyee_In_WST_Count_MasterDatabase.MasterDatabase_Tab);
                }
                tabControl1.SelectTab("R_007_Emlpoyee_In_WST_Count");
                return true;
            }
            R_007_Emlpoyee_In_WST_Count_Exist = true;

            R_007_Emlpoyee_In_WST_Count_MasterDatabase = new MaterDatabase(OpenXL, tabControl1, "R_007_Emlpoyee_In_WST_Count", R_007_Emlpoyee_In_WST_Count_Index, MasterDatabase_Connection_Str,
                                                            R_007_Emlpoyee_In_WST_Count_Init_Database_CMD, R_007_Emlpoyee_In_WST_Count_Select_CMD,
                                                            3, R_007_Emlpoyee_In_WST_Excel_Count_Struct, filterStatusLabel, showAllLabel,
                                                            StatusLabel1, StatusLabel2, ProgressBar1);

            R_007_Emlpoyee_In_WST_Count_MasterDatabase.MasterDatabase_GridviewTBL.GridView.BackgroundColor = Color.White;
            R_007_Emlpoyee_In_WST_Count_MasterDatabase.MasterDatabase_GridviewTBL.Privot_BT.Visible = false;
            R_007_Emlpoyee_In_WST_Count_MasterDatabase.MasterDatabase_GridviewTBL.Delete_All_BT.Visible = false;
            R_007_Emlpoyee_In_WST_Count_MasterDatabase.MasterDatabase_GridviewTBL.Export_BT.Visible = false;
            R_007_Emlpoyee_In_WST_Count_MasterDatabase.MasterDatabase_GridviewTBL.Import_BT.Visible = false;
            R_007_Emlpoyee_In_WST_Count_MasterDatabase.MasterDatabase_GridviewTBL.Submit_BT.Visible = false;

            PosSize possize = new PosSize();
            possize.pos_x = 200;
            possize.pos_y = 90;
            R_007_Emlpoyee_In_WST_Count_Create_BT = new Button_Lbl(1, R_007_Emlpoyee_In_WST_Count_MasterDatabase.MasterDatabase_Tab, "Create Report", possize, (AnchorStyles)AnchorStyles.Left | AnchorStyles.Top);
            R_007_Emlpoyee_In_WST_Count_Create_BT.My_Button.Click += new EventHandler(R_007_Emlpoyee_In_WST_Count_Create01_BT_Click);

            return true;
        }
        private bool R_007_Emlpoyee_In_WST_Init()
        {
            LoadInternalData();
            if (R_007_Emlpoyee_In_WST_Exist == true)
            {
                if (tabControl1.TabPages.Contains(R_007_Emlpoyee_In_WST_MasterDatabase.MasterDatabase_Tab) == false)
                {
                    tabControl1.TabPages.Insert(tabControl1.TabPages.Count, R_007_Emlpoyee_In_WST_MasterDatabase.MasterDatabase_Tab);
                }
                tabControl1.SelectTab("R_007_Emlpoyee_In_WST");
                return true;
            }
            R_007_Emlpoyee_In_WST_Exist = true;

            //R_007_Emlpoyee_In_WST_Excel();
            R_007_Emlpoyee_In_WST_MasterDatabase = new MaterDatabase(OpenXL, tabControl1, "R_007_Emlpoyee_In_WST", R_007_Emlpoyee_In_WST_Index, MasterDatabase_Connection_Str,
                                                            R_007_Emlpoyee_In_WST_Init_Database_CMD, R_007_Emlpoyee_In_WST_Select_CMD,
                                                            3, R_007_Emlpoyee_In_WST_Excel_Struct, filterStatusLabel, showAllLabel,
                                                            StatusLabel1, StatusLabel2, ProgressBar1);

            // Empl_Skill_List_MasterDatabase.MasterDatabase_GridviewTBL.dataGridView_View.Columns["Line_ID"].Frozen = true;
            R_007_Emlpoyee_In_WST_MasterDatabase.MasterDatabase_GridviewTBL.GridView.BackgroundColor = Color.White;
            //R_007_Emlpoyee_In_WST_MasterDatabase.MasterDatabase_GridviewTBL.GridView.DataBindingComplete += new DataGridViewBindingCompleteEventHandler(R_007_Emlpoyee_In_WST_Control_MasterDatabase_GridView_DataBindingComplete);
            R_007_Emlpoyee_In_WST_MasterDatabase.MasterDatabase_GridviewTBL.Privot_BT.Visible = true;

            PosSize possize = new PosSize();
            possize.pos_x = 200;
            possize.pos_y = 90;
            R_007_Emlpoyee_In_WST_Create_BT = new Button_Lbl(1, R_007_Emlpoyee_In_WST_MasterDatabase.MasterDatabase_Tab, "Create Report", possize, (AnchorStyles)AnchorStyles.Left | AnchorStyles.Top);
            R_007_Emlpoyee_In_WST_Create_BT.My_Button.Click += new EventHandler(R_007_Emlpoyee_In_WST_Create_BT_Click);

            possize.pos_x = 300;
            possize.pos_y = 90;
            R_007_Emlpoyee_In_WST_CountA_Create_BT = new Button_Lbl(1, R_007_Emlpoyee_In_WST_MasterDatabase.MasterDatabase_Tab, "Count", possize, (AnchorStyles)AnchorStyles.Left | AnchorStyles.Top);
            R_007_Emlpoyee_In_WST_CountA_Create_BT.My_Button.Click += new EventHandler(R_007_Emlpoyee_In_WST_Count_Create_BT_Click);

            //set role
            string moduleId = "R_007";
            RoleHelper.SetRole(R_007_Emlpoyee_In_WST_MasterDatabase, moduleId);
            R_007_Emlpoyee_In_WST_Create_BT.My_Button.Enabled = RoleHelper.GetCurrentUserLoginRole(UserRoleName.CREATE, moduleId);
            R_007_Emlpoyee_In_WST_CountA_Create_BT.My_Button.Enabled = RoleHelper.GetCurrentUserLoginRole(UserRoleName.CREATE, moduleId);

            return true;
        }
        private bool P001_InputFromPlanner_Init()
        {
            if (InputFromPlannerList_Exist == true)
            {
                if (tabControl1.TabPages.Contains(InputFromPlannerList_MasterDatabase.MasterDatabase_Tab) == false)
                {
                    tabControl1.TabPages.Insert(tabControl1.TabPages.Count, InputFromPlannerList_MasterDatabase.MasterDatabase_Tab);
                }
                tabControl1.SelectTab("P001_InputFromPlanner");

                return true;
            }
            InputFromPlannerList_Exist = true;
            Init_InputFromPlanner_Excel();
            InputFromPlannerList_MasterDatabase = new MaterDatabase(OpenXL, tabControl1, "P001_InputFromPlanner", InputFromPlannerList_Index, MasterDatabase_Connection_Str,
                                                            InputFromPlannerList_Init_Database_CMD, InputFromPlannerList_Select_CMD,
                                                            3, InputFromPlanner_Excel_Struct, filterStatusLabel, showAllLabel,
                                                            StatusLabel1, StatusLabel2, ProgressBar1);

            // Empl_Skill_List_MasterDatabase.MasterDatabase_GridviewTBL.dataGridView_View.Columns["Line_ID"].Frozen = true;
            InputFromPlannerList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.BackgroundColor = Color.White;

            //Dho-Fixme: Do we need to use the button "Check_BT"?
            PosSize possize = new PosSize();
            possize.pos_x = 200;
            possize.pos_y = 90;
            InputFromPlannerList_Create_BT = new Button_Lbl(1, InputFromPlannerList_MasterDatabase.MasterDatabase_Tab, "Create", possize, (AnchorStyles)AnchorStyles.Left | AnchorStyles.Top);
            InputFromPlannerList_Create_BT.My_Button.Click += new EventHandler(InputFromPlannerList_Create_BT_Click);

            //InputFromPlannerList_MasterDatabase.MasterDatabase_GridviewTBL.Import_BT.Enabled
            RoleHelper.SetRole(InputFromPlannerList_MasterDatabase, "P_001");
            InputFromPlannerList_Create_BT.My_Button.Enabled = RoleHelper.GetCurrentUserLoginRole(UserRoleName.CREATE, "P_001");

            //set role
            string moduleId = "P_001";
            RoleHelper.SetRole(InputFromPlannerList_MasterDatabase, moduleId);
            InputFromPlannerList_Create_BT.My_Button.Enabled = RoleHelper.GetCurrentUserLoginRole(UserRoleName.CREATE, moduleId);

            return true;
        }
        private bool R_009_Line_Status_Init()
        {
            if (R_009_Line_Status_Exist == true)
            {
                if (tabControl1.TabPages.Contains(R_009_Line_Status_MasterDatabase.MasterDatabase_Tab) == false)
                {
                    tabControl1.TabPages.Insert(tabControl1.TabPages.Count, R_009_Line_Status_MasterDatabase.MasterDatabase_Tab);
                }
                tabControl1.SelectTab("R_009_Line_Status");
                return true;
            }
            R_009_Line_Status_Exist = true;

            R_009_Line_Status_MasterDatabase = new MaterDatabase(OpenXL, tabControl1, "R_009_Line_Status", R_009_Line_Status_Index, MasterDatabase_Connection_Str,
                                                            R_009_Line_Status_Init_Database_CMD, R_009_Line_Status_Select_CMD,
                                                            3, R_009_Line_Status_Excel_Struct, filterStatusLabel, showAllLabel,
                                                            StatusLabel1, StatusLabel2, ProgressBar1);

            R_009_Line_Status_MasterDatabase.MasterDatabase_GridviewTBL.GridView.BackgroundColor = Color.White;
            R_009_Line_Status_MasterDatabase.MasterDatabase_GridviewTBL.Privot_BT.Visible = true;
            R_009_Line_Status_MasterDatabase.MasterDatabase_GridviewTBL.Submit_BT.Visible = false;
            R_009_Line_Status_MasterDatabase.MasterDatabase_GridviewTBL.Import_BT.Visible = false;
            R_009_Line_Status_MasterDatabase.MasterDatabase_GridviewTBL.Delete_All_BT.Visible = false;
            R_009_Line_Status_MasterDatabase.MasterDatabase_GridviewTBL.Review_BT.Visible = false;
            //R_009_Line_Status_MasterDatabase.MasterDatabase_GridviewTBL.GridView.DataBindingComplete += new DataGridViewBindingCompleteEventHandler(R_009_Line_Status_MasterDatabase_GridView_DataBindingComplete);
            R_009_Line_Status_MasterDatabase.MasterDatabase_GridviewTBL.GridView.ReadOnly = true;

            PosSize possize = new PosSize();
            possize.pos_x = 200;
            possize.pos_y = 90;
            R_009_Line_Status_Create_BT = new Button_Lbl(1, R_009_Line_Status_MasterDatabase.MasterDatabase_Tab, "Refresh", possize, (AnchorStyles)AnchorStyles.Left | AnchorStyles.Top);
            R_009_Line_Status_Create_BT.My_Button.Click += new EventHandler(R_009_Line_Status_Create_BT_Click);

            //set role
            //string moduleId = "R_009";
            //RoleHelper.SetRole(R_009_Line_Status_MasterDatabase, moduleId);
            //R_009_Line_Status_Create_BT.My_Button.Enabled = RoleHelper.GetCurrentUserLoginRole(UserRoleName.CREATE, moduleId);

            return true;
        }
        private bool P005_EmplWorkingPlan_Init()
        {
            if (EmplWorkingPlan_Exist == true)
            {
                if (tabControl1.TabPages.Contains(EmplWorkingPlan_MasterDatabase.MasterDatabase_Tab) == false)
                {
                    tabControl1.TabPages.Insert(tabControl1.TabPages.Count, EmplWorkingPlan_MasterDatabase.MasterDatabase_Tab);
                }
                tabControl1.SelectTab("P005_EmplPlan");
                return true;
            }
            EmplWorkingPlan_Exist = true;

            // Init_EmplWorkingPlan_Excel();
            EmplWorkingPlan_MasterDatabase = new MaterDatabase(OpenXL, tabControl1, "P005_EmplPlan", EmplWorkingPlan_Index, MasterDatabase_Connection_Str,
                                                            EmplWorkingPlan_Init_Database_CMD, EmplWorkingPlan_Select_CMD,
                                                            3, EmplWorkingPlan_Excel_Struct, filterStatusLabel, showAllLabel,
                                                            StatusLabel1, StatusLabel2, ProgressBar1);

            // Empl_Skill_List_MasterDatabase.MasterDatabase_GridviewTBL.dataGridView_View.Columns["Line_ID"].Frozen = true;
            EmplWorkingPlan_MasterDatabase.MasterDatabase_GridviewTBL.GridView.BackgroundColor = Color.White;
            EmplWorkingPlan_MasterDatabase.MasterDatabase_GridviewTBL.Import_BT.Visible = false;
            EmplWorkingPlan_MasterDatabase.MasterDatabase_GridviewTBL.Review_BT.Visible = false;
            EmplWorkingPlan_MasterDatabase.MasterDatabase_GridviewTBL.Delete_Rows_BT.Visible = false;

            PosSize possize = new PosSize();
            possize.pos_x = 200;
            possize.pos_y = 90;
            EmplWorkingPlan_Create_BT = new Button_Lbl(1, EmplWorkingPlan_MasterDatabase.MasterDatabase_Tab, "Create", possize, (AnchorStyles)AnchorStyles.Left | AnchorStyles.Top);
            EmplWorkingPlan_Create_BT.My_Button.Click += new EventHandler(EmplWorkingPlan_Create_BT_Click);
            EmplWorkingPlan_Create_BT.My_Button.Visible = true;

            //set role
            string moduleId = "P_005";
            RoleHelper.SetRole(EmplWorkingPlan_MasterDatabase, moduleId);
            EmplWorkingPlan_Create_BT.My_Button.Enabled = RoleHelper.GetCurrentUserLoginRole(UserRoleName.CREATE, moduleId);

            return true;
        }
        private bool P002_PlanByDate_Init()
        {
            if (KeHoachSanXuatTheoNgayList_Exist == true)
            {
                if (tabControl1.TabPages.Contains(KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_Tab) == false)
                {
                    tabControl1.TabPages.Insert(tabControl1.TabPages.Count, KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_Tab);
                }
                tabControl1.SelectTab("P002_PlanByDate");
                return true;
            }
            KeHoachSanXuatTheoNgayList_Exist = true;
            Init_KeHoachSanXuatTheoNgay_Excel();
            KeHoachSanXuatTheoNgayList_MasterDatabase = new MaterDatabase(OpenXL, tabControl1, "P002_PlanByDate", ProductionPlanByDate_Index, MasterDatabase_Connection_Str,
                                                            KeHoachSanXuatTheoNgayList_Init_Database_CMD, KeHoachSanXuatTheoNgayList_Select_CMD,
                                                            3, KeHoachSanXuatTheoNgay_Excel_Struct, filterStatusLabel, showAllLabel,
                                                            StatusLabel1, StatusLabel2, ProgressBar1);

            // Empl_Skill_List_MasterDatabase.MasterDatabase_GridviewTBL.dataGridView_View.Columns["Line_ID"].Frozen = true;
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.BackgroundColor = Color.White;
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.Privot_BT.Visible = true;

            planByDateController = new PlanByDateController(KeHoachSanXuatTheoNgayList_MasterDatabase);

            //Dho-Fixme: Do we need to use the button "Check_BT"?
            PosSize possize = new PosSize();
            possize.pos_x = 200;
            possize.pos_y = 90;
            PlanByDate_Create_BT = new Button_Lbl(1, KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_Tab, "Create", possize, (AnchorStyles)AnchorStyles.Left | AnchorStyles.Top);
            PlanByDate_Create_BT.My_Button.Click += new EventHandler(PlanByDate_Create_BT_Click);

            possize.pos_x = 300;
            possize.pos_y = 90;
            PlanByDate_Calculate_BT = new Button_Lbl(1, KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_Tab, "Calculate", possize, (AnchorStyles)AnchorStyles.Left | AnchorStyles.Top);
            PlanByDate_Calculate_BT.My_Button.Click += new EventHandler(Button_Calculte_Click);

            possize.pos_x = 700;
            possize.pos_y = 90;
            txtTotalRequireResource = new TextBox_Lbl(1, KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_Tab, "Total", TextBox_Type.TEXT, possize, AnchorType.LEFT);
            txtTotalRequireResource.My_TextBox.ReadOnly = true;
            txtTotalRequireResource.My_TextBox.TextAlign = HorizontalAlignment.Right;
            txtTotalRequireResource.My_TextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));

            possize.pos_x = 880;
            txtInterestRequireResource = new TextBox_Lbl(1, KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_Tab, "Ratio increasing", TextBox_Type.TEXT, possize, AnchorType.LEFT);
            txtInterestRequireResource.My_TextBox.Location = new Point(possize.pos_x + 100, possize.pos_y);
            txtInterestRequireResource.My_TextBox.ReadOnly = true;
            txtInterestRequireResource.My_TextBox.TextAlign = HorizontalAlignment.Right;
            txtInterestRequireResource.My_TextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));

            dtOneShiftGroup = planByDateController.GetShiftGroup(PlanByDateController.SHIFT_GROUP_TYPE_ONE);
            dtThreeShiftGroup = planByDateController.GetShiftGroup(PlanByDateController.SHIFT_GROUP_TYPE_THREE);
            dtTwoShiftGroup = planByDateController.GetShiftGroup(PlanByDateController.SHIFT_GROUP_TYPE_TWO);

            //add column ShiftNamePerLine -> allow manual shiftname on line
            DataGridViewMultiColumnComboBoxColumn col = new DataGridViewMultiColumnComboBoxColumn();
            col.Name = "ShiftNamePerLine";
            col.DataPropertyName = "ShiftNamePerLine";
            col.DataSource = dtThreeShiftGroup;
            col.ValueMember = "GroupName";
            col.ColumnNames = new List<string> { "GroupName" };
            col.ColumnWidths = new List<string>() { "200" };

            if (KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns.Contains("ShiftNamePerLine"))
            {
                int index = KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["ShiftNamePerLine"].Index;
                KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns.RemoveAt(index);
                KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns.Insert(index, col);
            }
            //end add column ShiftNamePerLine

            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.ColumnHeadersHeight = 50;

            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["TotalShiftPerLine"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["Capacity"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["Qty"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["NumOfShift"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["NumOfPerson_Per_Day"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["Shift_1_Qty"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["Shift_2_Qty"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["Shift_3_Qty"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;

            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["NumOfPerson_Per_Day"].Width = 70;
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["TotalShiftPerLine"].Width = 70;
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["Capacity"].Width = 70;
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["NumOfShift"].Width = 70;

            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["Priority"].Width = 50;
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["Shift_1_From"].Width = 70;
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["Shift_1_To"].Width = 70;
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["Shift_1_Qty"].Width = 70;
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["Shift_1_Main"].Width = 70;
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["Shift_2_From"].Width = 70;
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["Shift_2_To"].Width = 70;
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["Shift_2_Main"].Width = 70;
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["Shift_2_Qty"].Width = 70;
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["Shift_3_From"].Width = 70;
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["Shift_3_To"].Width = 70;
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["Shift_3_Qty"].Width = 70;
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["Shift_3_Main"].Width = 70;

            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["ShiftNamePerLine"].HeaderText = "Shift name per line";
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["TotalShiftPerLine"].HeaderText = "Total shift per line";
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["NumOfShift"].HeaderText = "Num of shift";
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["NumOfPerson_Per_Day"].HeaderText = "Num Of Person Per Day";
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["Shift_1_From"].HeaderText = "Shift_1 From";
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["Shift_1_To"].HeaderText = "Shift_1 To";
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["Shift_1_Qty"].HeaderText = "Shift_1 Qty";
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["Shift_1_Main"].HeaderText = "Shift_1 Main";
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["Shift_2_From"].HeaderText = "Shift_2 From";
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["Shift_2_To"].HeaderText = "Shift_2 To";
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["Shift_2_Qty"].HeaderText = "Shift_2 Qty";
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["Shift_2_Main"].HeaderText = "Shift_2 Main";
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["Shift_3_From"].HeaderText = "Shift_3 From";
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["Shift_3_To"].HeaderText = "Shift_3 To";
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["Shift_3_Qty"].HeaderText = "Shift_3 Qty";
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["Shift_3_Main"].HeaderText = "Shift_3 Main";
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.EditMode = DataGridViewEditMode.EditOnEnter;
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.Delete_Rows_BT.Visible = true;

            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.CellValueChanged += new DataGridViewCellEventHandler(KeHoachSanXuatTheoNgayList_MasterDatabase_GridView_CellValueChanged);
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.CellContentClick += new DataGridViewCellEventHandler(KeHoachSanXuatTheoNgayList_MasterDatabase_GridView_CellContentClick);
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.DataBindingComplete += new DataGridViewBindingCompleteEventHandler(KeHoachSanXuatTheoNgayList_MasterDatabase_GridView_DataBindingComplete);
            KeHoachSanXuatTheoNgayList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.CellBeginEdit += new DataGridViewCellCancelEventHandler(KeHoachSanXuatTheoNgayList_MasterDatabase_GridView_CellBeginEdit);

            //set role
            string moduleId = "P_002";
            RoleHelper.SetRole(KeHoachSanXuatTheoNgayList_MasterDatabase, moduleId);
            PlanByDate_Create_BT.My_Button.Enabled = RoleHelper.GetCurrentUserLoginRole(UserRoleName.CREATE, moduleId);
            PlanByDate_Calculate_BT.My_Button.Enabled = RoleHelper.GetCurrentUserLoginRole(UserRoleName.CREATE, moduleId);

            return true;
        }
        private bool P003_AssignEmpl_Init()
        {
            if (P_003_KeHoachSanXuatTheoLine_Exist == true)
            {
                if (tabControl1.TabPages.Contains(P_003_KeHoachSanXuatTheoLine_MasterDatabase.MasterDatabase_Tab) == false)
                {
                    tabControl1.TabPages.Insert(tabControl1.TabPages.Count, P_003_KeHoachSanXuatTheoLine_MasterDatabase.MasterDatabase_Tab);
                }
                tabControl1.SelectTab("P003_AssignEmployee");
                return true;
            }

            if (Running_Mode == Run_Mode.DEBUG)
            {
                P_003_KeHoachSanXuatTheoLine_Select_CMD = @"SELECT * FROM [P_003_KeHoachSanXuatTheoLine_Test] ";
                P_003_KeHoachSanXuatTheoLine_Init_Database_CMD = @"SELECT * FROM [P_003_KeHoachSanXuatTheoLine_Test]
                                                       WHERE [Date] = ''";
            }
            P_003_KeHoachSanXuatTheoLine_Exist = true;
            Init_P_003_KeHoachSanXuatTheoLine_Excel();
            P_003_KeHoachSanXuatTheoLine_MasterDatabase = new MaterDatabase(OpenXL, tabControl1, "P003_AssignEmployee", P_003_KeHoachSanXuatTheoLine_INDEX, MasterDatabase_Connection_Str,
                                                            P_003_KeHoachSanXuatTheoLine_Init_Database_CMD, P_003_KeHoachSanXuatTheoLine_Select_CMD,
                                                            3, P_003_KeHoachSanXuatTheoLine_Excel_Struct, filterStatusLabel, showAllLabel,
                                                            StatusLabel1, StatusLabel2, ProgressBar1);

            // Empl_Skill_List_MasterDatabase.MasterDatabase_GridviewTBL.dataGridView_View.Columns["Line_ID"].Frozen = true;
            P_003_KeHoachSanXuatTheoLine_MasterDatabase.MasterDatabase_GridviewTBL.GridView.BackgroundColor = Color.White;
            P_003_KeHoachSanXuatTheoLine_MasterDatabase.MasterDatabase_GridviewTBL.Import_BT.Visible = true;
            P_003_KeHoachSanXuatTheoLine_MasterDatabase.MasterDatabase_GridviewTBL.Delete_All_BT.Visible = false;
            P_003_KeHoachSanXuatTheoLine_MasterDatabase.MasterDatabase_GridviewTBL.Privot_BT.Visible = true;

            //Dho-Fixme: Do we need to use the button "Check_BT"?
            PosSize possize = new PosSize();
            possize.pos_x = 200;
            possize.pos_y = 90;
            PlanForLine_Create_BT = new Button_Lbl(1, P_003_KeHoachSanXuatTheoLine_MasterDatabase.MasterDatabase_Tab, "Create", possize, (AnchorStyles)AnchorStyles.Left | AnchorStyles.Top);
            PlanForLine_Create_BT.My_Button.Click += new EventHandler(PlanForLine_Create_BT_Click);

            possize.pos_x = 300;
            possize.pos_y = 90;
            PlanForLine_Empl_Asign_BT = new Button_Lbl(2, P_003_KeHoachSanXuatTheoLine_MasterDatabase.MasterDatabase_Tab, "Add FRU", possize, (AnchorStyles)AnchorStyles.Left | AnchorStyles.Top);
            PlanForLine_Empl_Asign_BT.My_Button.Click += new EventHandler(P_003_KeHoachSanXuatTheoLine_AddFRU_BT_Click);

            possize.pos_x = 400;
            possize.pos_y = 90;
            PlanForLine_Create_FRU_BT = new Button_Lbl(2, P_003_KeHoachSanXuatTheoLine_MasterDatabase.MasterDatabase_Tab, "Assign", possize, (AnchorStyles)AnchorStyles.Left | AnchorStyles.Top);
            PlanForLine_Create_FRU_BT.My_Button.Click += new EventHandler(PlanForLine_Empl_Asign_BT_Click);

            possize.pos_x = 700;
            possize.pos_y = 90;
            PlanForLine_DuplicateRow_BT = new Button_Lbl(3, P_003_KeHoachSanXuatTheoLine_MasterDatabase.MasterDatabase_Tab, "Duplicate Current Row", possize, (AnchorStyles)AnchorStyles.Left | AnchorStyles.Top);
            PlanForLine_DuplicateRow_BT.My_Button.Click += new EventHandler(PlanForLine_DuplicateRow_BT_Click);

            //Chỉ cần load danh sách nhân viên available ?
            //DataTable leave_info = Load_Leave_Register(date);
            P_003_KeHoachSanXuatTheoLine_tbAllEmployee = Load_All_Empl();
            P_003_KeHoachSanXuatTheoLine_tbAllEmployee.PrimaryKey = new DataColumn[] { P_003_KeHoachSanXuatTheoLine_tbAllEmployee.Columns["Empl_ID"] };

            if (P_003_KeHoachSanXuatTheoLine_tbAllEmployee.Columns.Contains("Cur_Line") == false)
            {
                P_003_KeHoachSanXuatTheoLine_tbAllEmployee.Columns.Add("Cur_Line", typeof(String));
            }
            if (P_003_KeHoachSanXuatTheoLine_tbAllEmployee.Columns.Contains("Cur_Shift") == false)
            {
                P_003_KeHoachSanXuatTheoLine_tbAllEmployee.Columns.Add("Cur_Shift", typeof(String));
            }
            if (P_003_KeHoachSanXuatTheoLine_tbAllEmployee.Columns.Contains("Date") == false)
            {
                P_003_KeHoachSanXuatTheoLine_tbAllEmployee.Columns.Add("Date", typeof(DateTime));
            }
            //P_003_KeHoachSanXuatTheoLine_tbAllEmployee.Columns.Add("Cur_Line", typeof(String));
            //P_003_KeHoachSanXuatTheoLine_tbAllEmployee.Columns.Add("Cur_Shift", typeof(String));
            //P_003_KeHoachSanXuatTheoLine_tbAllEmployee.Columns.Add("Date", typeof(DateTime));
            DataGridViewMultiColumnComboBoxColumn col = new DataGridViewMultiColumnComboBoxColumn();
            col.Name = "Empl_ID";
            col.DataPropertyName = "Empl_ID";
            col.ValueMember = "Empl_ID";
            col.DataSource = P_003_KeHoachSanXuatTheoLine_tbAllEmployee;
            col.ColumnWidths = new List<string>() { "55", "150", "60", "50", "65" };

            if (P_003_KeHoachSanXuatTheoLine_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns.Contains("Empl_ID"))
            {
                int index = P_003_KeHoachSanXuatTheoLine_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["Empl_ID"].Index;
                P_003_KeHoachSanXuatTheoLine_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns.RemoveAt(index);
                P_003_KeHoachSanXuatTheoLine_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns.Insert(index, col);
                col.HeaderCell = new DataGridViewAutoFilterColumnHeaderCell(col.HeaderCell);
            }

            P_003_KeHoachSanXuatTheoLine_MasterDatabase.MasterDatabase_GridviewTBL.GridView.CellValueChanged += new DataGridViewCellEventHandler(P_003_KeHoachSanXuatTheoLine_MasterDatabase_GridView_CellValueChanged);
            P_003_KeHoachSanXuatTheoLine_MasterDatabase.MasterDatabase_GridviewTBL.GridView.DataBindingComplete += new DataGridViewBindingCompleteEventHandler(P_003_KeHoachSanXuatTheoLine_MasterDatabase_GridView_DataBindingComplete);
            //P_003_KeHoachSanXuatTheoLine_MasterDatabase.MasterDatabase_GridviewTBL.GridView.DataSourceChanged += new EventHandler(P_003_KeHoachSanXuatTheoLine_MasterDatabase_GridView_DataSourceChanged);
            P_003_KeHoachSanXuatTheoLine_MasterDatabase.MasterDatabase_GridviewTBL.GridView.CellBeginEdit += new DataGridViewCellCancelEventHandler(P_003_KeHoachSanXuatTheoLine_MasterDatabase_GridView_CellBeginEdit);

            //set role
            string moduleId = "P_003";
            RoleHelper.SetRole(P_003_KeHoachSanXuatTheoLine_MasterDatabase, moduleId);
            PlanForLine_Create_BT.My_Button.Enabled = RoleHelper.GetCurrentUserLoginRole(UserRoleName.CREATE, moduleId);
            PlanForLine_Empl_Asign_BT.My_Button.Enabled = RoleHelper.GetCurrentUserLoginRole(UserRoleName.CREATE, moduleId);
            PlanForLine_Create_FRU_BT.My_Button.Enabled = RoleHelper.GetCurrentUserLoginRole(UserRoleName.CREATE, moduleId);

            return true;
        }