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;
        }
        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_008_Employee_Current_On_Line_Init()
        {
            if (R_008_Employee_Current_On_Line_Exist == true)
            {
                if (tabControl1.TabPages.Contains(R_008_Employee_Current_On_Line_MasterDatabase.MasterDatabase_Tab) == false)
                {
                    tabControl1.TabPages.Insert(tabControl1.TabPages.Count, R_008_Employee_Current_On_Line_MasterDatabase.MasterDatabase_Tab);
                }
                tabControl1.SelectTab("R_008_Employee_Current_On_Line");
                return true;
            }
            R_008_Employee_Current_On_Line_Exist = true;

            R_008_Employee_Current_On_Line_MasterDatabase = new MaterDatabase(OpenXL, tabControl1, "R_008_Employee_Current_On_Line", R_008_Employee_Current_On_Line_Index, MasterDatabase_Connection_Str,
                                                            R_008_Employee_Current_On_Line_Select_CMD, R_008_Employee_Current_On_Line_Select_CMD,
                                                            3, R_008_Employee_Current_On_Line_Excel_Struct, filterStatusLabel, showAllLabel,
                                                            StatusLabel1, StatusLabel2, ProgressBar1);

            R_008_Employee_Current_On_Line_MasterDatabase.MasterDatabase_GridviewTBL.GridView.BackgroundColor = Color.White;
            R_008_Employee_Current_On_Line_MasterDatabase.MasterDatabase_GridviewTBL.GridView.DataBindingComplete += new DataGridViewBindingCompleteEventHandler(R_008_Employee_Current_On_Line_MasterDatabase_GridView_DataBindingComplete);
            R_008_Employee_Current_On_Line_MasterDatabase.MasterDatabase_GridviewTBL.Privot_BT.Visible = true;
            R_008_Employee_Current_On_Line_MasterDatabase.MasterDatabase_GridviewTBL.Delete_All_BT.Visible = false;
            R_008_Employee_Current_On_Line_MasterDatabase.MasterDatabase_GridviewTBL.Submit_BT.Visible = false;
            R_008_Employee_Current_On_Line_MasterDatabase.MasterDatabase_GridviewTBL.Import_BT.Visible = false;
            R_008_Employee_Current_On_Line_MasterDatabase.MasterDatabase_GridviewTBL.Export_BT.Visible = false;

            return true;
        }
        private bool Skill_Mapping_Init()
        {
            if (Skill_Mapping_Exist == true)
            {
                if (tabControl1.TabPages.Contains(Skill_Mapping_MasterDatabase.MasterDatabase_Tab) == false)
                {
                    tabControl1.TabPages.Insert(tabControl1.TabPages.Count, Skill_Mapping_MasterDatabase.MasterDatabase_Tab);
                }
                tabControl1.SelectTab("Skill_Mapping");
                return true;
            }
            Skill_Mapping_Exist = true;
            // Init_Line_Desciption_Excel();
            Skill_Mapping_MasterDatabase = new MaterDatabase(OpenXL, tabControl1, "Skill_Mapping", 0, MasterDatabase_Connection_Str,
                                                            Skill_Mapping_Init_Database_CMD, Skill_Mapping_Select_CMD,
                                                            3, null, filterStatusLabel, showAllLabel,
                                                            StatusLabel1, StatusLabel2, ProgressBar1);

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

            //set role
            string moduleId = "R_002";
            RoleHelper.SetRole(Skill_Mapping_MasterDatabase, moduleId);

            return true;
        }
        // private void Init_InputFromPlanner_Excel()
        // {
        // if (InputFromPlanner_Excel_Struct == null)
        // {
        // InputFromPlanner_Excel_Struct = new ExcelImportStruct[5];
        // InputFromPlanner_Excel_Struct[0] = new ExcelImportStruct(0, "Date", "Date", Excel_Col_Type.COL_DATE, 20, true);
        // InputFromPlanner_Excel_Struct[1] = new ExcelImportStruct(1, "PO", "PO", Excel_Col_Type.COL_STRING, 20, false);
        // InputFromPlanner_Excel_Struct[2] = new ExcelImportStruct(2, "PartNumber", "PartNumber", Excel_Col_Type.COL_STRING, 50, false);
        // InputFromPlanner_Excel_Struct[3] = new ExcelImportStruct(3, "Qty", "Qty", Excel_Col_Type.COL_INT, 20, false);
        // InputFromPlanner_Excel_Struct[4] = new ExcelImportStruct(4, "Priority", "Priority", Excel_Col_Type.COL_INT, 20, false);
        // }
        // }
        private bool KittingDatabase_Init()
        {
            if (KittingDatabase_Exist == true)
            {
                if (tabControl1.TabPages.Contains(KittingDatabase_MasterDatabase.MasterDatabase_Tab) == false)
                {
                    tabControl1.TabPages.Insert(tabControl1.TabPages.Count, KittingDatabase_MasterDatabase.MasterDatabase_Tab);
                }
                tabControl1.SelectTab("Kitting");

                return true;
            }
            KittingDatabase_Exist = true;
            Init_InputFromPlanner_Excel();
            KittingDatabase_MasterDatabase = new MaterDatabase(OpenXL, tabControl1, "Kitting", KittingDatabase_Index, Kitting_Connection_Str,
                                                            KittingDatabase_Init_Database_CMD, KittingDatabase_Select_CMD,
                                                            3, null, filterStatusLabel, showAllLabel,
                                                            StatusLabel1, StatusLabel2, ProgressBar1);

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

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

            return true;
        }
        public PlanByDateController(MaterDatabase _masterDb)
        {
            masterDb = _masterDb;

            SqlDataAdapter sqlAdapterLineDescription = null;
            DataSet dsLineDescription = new DataSet();
            tbLineDescription = masterDb.Get_SQL_Data(ApplicationSetting.GetInstance().MasterDatabaseConnectionString, "select * from MDB_003_Line_Desciption", ref sqlAdapterLineDescription, ref dsLineDescription);
        }
        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 LineLayout_Init()
        {
            if (LineLayout_Exist == true)
            {
                tabControl1.SelectTab("LineLayout");
                return true;
            }
            LineLayout_Exist = true;

            Init_LineLayout_Excel();
            LineLayout_MasterDatabase = new MaterDatabase(OpenXL, tabControl1, "LineLayout", LineLayout_Index, MasterDatabase_Connection_Str,
                                                            LineLayout_Init_Database_CMD, LineLayout_Select_CMD,
                                                            3, LineLayout_Excel_Struct, filterStatusLabel, showAllLabel,
                                                            StatusLabel1, StatusLabel2, ProgressBar1);

            // Empl_Skill_List_MasterDatabase.MasterDatabase_GridviewTBL.dataGridView_View.Columns["Line_ID"].Frozen = true;
            LineLayout_MasterDatabase.MasterDatabase_GridviewTBL.GridView.BackgroundColor = Color.White;
            return true;
        }
        private bool Tracking_View_Init()
        {
            if (Tracking_View_Exist == true)
            {
                tabControl1.SelectTab("Tracking View");
                return true;
            }
            Tracking_View_Exist = true;
            // Init_Line_Desciption_Excel();
            Tracking_View_MasterDatabase = new MaterDatabase(OpenXL, tabControl1, "Tracking View", 0, MasterDatabase_Connection_Str,
                                                            Tracking_View_Init_Database_CMD, Tracking_View_Select_CMD,
                                                            3, null, filterStatusLabel, showAllLabel,
                                                            StatusLabel1, StatusLabel2, ProgressBar1);

            // Empl_Skill_List_MasterDatabase.MasterDatabase_GridviewTBL.dataGridView_View.Columns["Line_ID"].Frozen = true;
            Tracking_View_MasterDatabase.MasterDatabase_GridviewTBL.GridView.BackgroundColor = Color.White;
            Tracking_View_MasterDatabase.MasterDatabase_GridviewTBL.Import_BT.Visible = false;
            return true;
        }
        private bool Empl_Skill_List_Init()
        {
            if (Empl_Skill_List_Exist == true)
            {
                if (tabControl1.TabPages.Contains(Empl_Skill_List_MasterDatabase.MasterDatabase_Tab) == false)
                {
                    tabControl1.TabPages.Insert(tabControl1.TabPages.Count, Empl_Skill_List_MasterDatabase.MasterDatabase_Tab);
                }
                tabControl1.SelectTab("Employee_vs_Skill");
                return true;
            }
            Empl_Skill_List_Exist = true;
            Init_Empl_Skill_Excel();
            Empl_Skill_List_MasterDatabase = new MaterDatabase(OpenXL, tabControl1, "Employee_vs_Skill", SkillList_Index, MasterDatabase_Connection_Str,
                                                            Empl_Skill_List_Init_Database_CMD, Empl_Skill_List_Select_CMD,
                                                            3, Empl_Skill_Excel_Struct, filterStatusLabel, showAllLabel,
                                                            StatusLabel1, StatusLabel2, ProgressBar1);

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

            All_Skill_List = new SQL_API.SQL_ATC(MasterDatabase_Connection_Str);
            string sql_cmd = @"SELECT [Skill_ID] ,[Skill_Name] FROM [MDB_001_Skill_List_Tbl]";
            All_Skill_List.GET_SQL_DATA(sql_cmd);

            DataGridViewMultiColumnComboBoxColumn col = new DataGridViewMultiColumnComboBoxColumn();
            col.Name = "Skill_ID";
            col.DataPropertyName = "Skill_ID";
            col.ValueMember = "Skill_ID";
            col.DataSource = All_Skill_List.DaTable;
            col.ColumnWidths = new List<string>() { "60", "150" };

            if (Empl_Skill_List_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns.Contains("Skill_ID"))
            {
                int index = Empl_Skill_List_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns["Skill_ID"].Index;
                Empl_Skill_List_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns.RemoveAt(index);
                Empl_Skill_List_MasterDatabase.MasterDatabase_GridviewTBL.GridView.Columns.Insert(index, col);
                col.HeaderCell = new DataGridViewAutoFilterColumnHeaderCell(col.HeaderCell);
            }
            Empl_Skill_List_MasterDatabase.MasterDatabase_GridviewTBL.GridView.CellValueChanged += new DataGridViewCellEventHandler(Empl_Skill_List_MasterDatabase_GridView_CellValueChanged);
            return true;
        }
 private bool SkillList_Init()
 {
     if (SkillList_Exist == true)
     {
         if (tabControl1.TabPages.Contains(SkillList_MasterDatabase.MasterDatabase_Tab) == false)
         {
             tabControl1.TabPages.Insert(tabControl1.TabPages.Count, SkillList_MasterDatabase.MasterDatabase_Tab);
         }
         tabControl1.SelectTab("Skill_List");
         return true;
     }
     SkillList_Exist = true;
     Init_Skill_Excel();
     SkillList_MasterDatabase = new MaterDatabase(OpenXL, tabControl1, "Skill_List", SkillList_Index, MasterDatabase_Connection_Str,
                                                     SkillList_Init_Database_CMD, SkillList_Select_CMD,
                                                     3, Skill_Excel_Struct, filterStatusLabel, showAllLabel,
                                                     StatusLabel1, StatusLabel2, ProgressBar1);
     // Empl_Skill_List_MasterDatabase.MasterDatabase_GridviewTBL.dataGridView_View.Columns["Line_ID"].Frozen = true;
     SkillList_MasterDatabase.MasterDatabase_GridviewTBL.GridView.BackgroundColor = Color.White;
     return true;
 }
        private bool Employee_Working_on_Sunday_Init()
        {
            if (Employee_Working_on_Sunday_Exist == true)
            {
                if (tabControl1.TabPages.Contains(Employee_Working_on_Sunday_MasterDatabase.MasterDatabase_Tab) == false)
                {
                    tabControl1.TabPages.Insert(tabControl1.TabPages.Count, Employee_Working_on_Sunday_MasterDatabase.MasterDatabase_Tab);
                }
                tabControl1.SelectTab("Employee Working on Sunday");
                return true;
            }
            Employee_Working_on_Sunday_Exist = true;
            Init_Employee_Working_on_Sunday_Excel();
            Employee_Working_on_Sunday_MasterDatabase = new MaterDatabase(OpenXL, tabControl1, "Employee Working on Sunday", Employee_Working_on_Sunday_Index, MasterDatabase_Connection_Str,
                                                            Employee_Working_on_Sunday_Init_Database_CMD, Employee_Working_on_Sunday_Select_CMD,
                                                            3, Employee_Working_on_Sunday_Excel_Struct, filterStatusLabel, showAllLabel,
                                                            StatusLabel1, StatusLabel2, ProgressBar1);

            Employee_Working_on_Sunday_MasterDatabase.MasterDatabase_GridviewTBL.GridView.BackgroundColor = Color.White;
            return true;
        }
        private bool Leave_Info_Init()
        {
            if (Leave_Info_Exist == true)
            {
                if (tabControl1.TabPages.Contains(Leave_Info_MasterDatabase.MasterDatabase_Tab) == false)
                {
                    tabControl1.TabPages.Insert(tabControl1.TabPages.Count, Leave_Info_MasterDatabase.MasterDatabase_Tab);
                }
                tabControl1.SelectTab("Leave_Info");
                return true;
            }
            Leave_Info_Exist = true;
            Init_Leave_Info_Excel();
            Leave_Info_MasterDatabase = new MaterDatabase(OpenXL, tabControl1, "Leave_Info", Leave_Info_Index, LeaveRegister_Connection_Str,
                                                            Leave_Info_Init_Database_CMD, Leave_Info_Select_CMD,
                                                            3, Leave_Info_Excel_Struct, filterStatusLabel, showAllLabel,
                                                            StatusLabel1, StatusLabel2, ProgressBar1);

            Leave_Info_MasterDatabase.MasterDatabase_GridviewTBL.GridView.BackgroundColor = Color.White;
            return true;
        }
        public static void SetRole(MaterDatabase master, string moduleId)
        {
            UserInfo userInfo = ApplicationSession.UserLoginInfo;

            if (userInfo == null)
                return;

            if (GetCurrentUserLoginRole(UserRoleName.VIEW_ONLY, moduleId))
            {
                master.MasterDatabase_GridviewTBL.Import_BT.Enabled = false; // sao mình không dùng visible cho nó mất luôn
                master.MasterDatabase_GridviewTBL.Submit_BT.Enabled = false;
                master.MasterDatabase_GridviewTBL.Export_BT.Enabled = false;
                master.MasterDatabase_GridviewTBL.Delete_All_BT.Enabled = false;
                master.MasterDatabase_GridviewTBL.Delete_Rows_BT.Enabled = false;
            }
            else
            {
                master.MasterDatabase_GridviewTBL.Import_BT.Enabled = GetCurrentUserLoginRole(UserRoleName.IMPORT, moduleId);
                //master.MasterDatabase_GridviewTBL.Import_BT.Enabled = userInfo.Roles[moduleId].IsCreate;
            }
        }
        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 P007_Tracking_View_Init()
        {
            if (P007_Tracking_View_Exist == true)
            {
                if (tabControl1.TabPages.Contains(P007_Tracking_View_MasterDatabase.MasterDatabase_Tab) == false)
                {
                    tabControl1.TabPages.Insert(tabControl1.TabPages.Count, P007_Tracking_View_MasterDatabase.MasterDatabase_Tab);
                }
                tabControl1.SelectTab("P007_Tracking_View");
                return true;
            }
            P007_Tracking_View_Exist = true;

            // Init_P007_Tracking_View_Excel();
            P007_Tracking_View_MasterDatabase = new MaterDatabase(OpenXL, tabControl1, "P007_Tracking_View", P007_Tracking_View_Index, MasterDatabase_Connection_Str,
                                                            P007_Tracking_View_Init_Database_CMD, P007_Tracking_View_Select_CMD,
                                                            3, P007_Tracking_View_Excel_Struct, filterStatusLabel, showAllLabel,
                                                            StatusLabel1, StatusLabel2, ProgressBar1);

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

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

            // khong set role được, vì chưa có tạo nút button nào cả
            //set role
            //string moduleId = "P_007";
            //RoleHelper.SetRole(P007_Tracking_View_MasterDatabase, moduleId);
            //P007_Tracking_View_Create_BT.My_Button.Enabled = RoleHelper.GetCurrentUserLoginRole(UserRoleName.CREATE, moduleId);

            return true;
        }
        private bool LineWorkStationMapping_Init()
        {
            if (LineWorkStationMapping_Exist == true)
            {
                if (tabControl1.TabPages.Contains(LineWorkStationMapping_MasterDatabase.MasterDatabase_Tab) == false)
                {
                    tabControl1.TabPages.Insert(tabControl1.TabPages.Count, LineWorkStationMapping_MasterDatabase.MasterDatabase_Tab);
                }
                tabControl1.SelectTab("WorkStationDescription");
                return true;
            }
            LineWorkStationMapping_Exist = true;

            Init_LineWorkStationMapping_Excel();
            LineWorkStationMapping_MasterDatabase = new MaterDatabase(OpenXL, tabControl1, "WorkStationDescription", WorkStationDescription_Index, MasterDatabase_Connection_Str,
                                                            LineWorkStationMapping_Init_Database_CMD, LineWorkStationMapping_Select_CMD,
                                                            3, LineSkillRequest_Excel_Struct, filterStatusLabel, showAllLabel,
                                                            StatusLabel1, StatusLabel2, ProgressBar1);

            // Empl_Skill_List_MasterDatabase.MasterDatabase_GridviewTBL.dataGridView_View.Columns["Line_ID"].Frozen = true;
            LineWorkStationMapping_MasterDatabase.MasterDatabase_GridviewTBL.GridView.BackgroundColor = Color.White;
            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;
        }
        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;
        }