private void tmrEditNotify_Tick(object sender, EventArgs e) { if (m_bDirtys) { // Kiểm tra lại bản mạch đã OK trên WIP chưa? // Nếu OK => Đóng dấu // Nếu FAIL => Bỏ qua không đóng dấu, thông báo lỗi //trạng thái bản mạch hiện tại if (checkEditSerialPort.Checked == true) { var checkAgain = _workOrderItemService.Get_WORK_ORDER_ITEMS_By_BoardNo(productionId); if (checkAgain.BOARD_STATE == 1) { //com.WriteData("O"); lblMarking.Visible = true; } else if (checkAgain.BOARD_STATE == 2) { messageError = $"Board '{productionId}' NG Wip. Vui lòng kiểm tra lại!"; MessageHelpers.SetErrorStatus(true, "NG", messageError, lblStatus, lblMessage); CheckTextBoxNullValue.SetColorErrorTextControl(txtBarcode); var errorForm = new FormError(messageError); errorForm.ShowDialog(); txtBarcode.Focus(); } } int iHandle2 = NativeWin32.FindWindow(null, this.Text); NativeWin32.SetForegroundWindow(iHandle2); lblPass.Text = pass.ToString(); lblNG.Text = ng.ToString(); lblTotal.Text = total.ToString(); LoadData(productionId, modelId, gridLookUpEditProcessID.EditValue.ToString(), boardState); m_bDirtys = false; } }
private void txtBarcode_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) { if (e.KeyCode == Keys.Enter) { lblMarking.Visible = false; string boardNo = txtBarcode.Text; if (boardNo.Contains("=")) { boardNo = boardNo.Replace("=", "_"); } string set_station_no = gridLookUpEditProcessID.EditValue.ToString(); if (!CheckTextBoxNullValue.ValidationTextEditNullValue(txtBarcode)) { MessageHelpers.SetErrorStatus(true, "NG", "Please input a barcode!", lblStatus, lblMessage); return; } else if (txtBarcode.Text.Length <= 5) { MessageHelpers.SetErrorStatus(true, "NG", "Board No invaild. Please try again!", lblStatus, lblMessage); CheckTextBoxNullValue.SetColorErrorTextControl(txtBarcode); return; } else { MessageHelpers.SetDefaultStatus(true, "N/A", "N/A", lblStatus, lblMessage); CheckTextBoxNullValue.SetColorDefaultTextControl(txtBarcode); // Lấy toàn bộ thông tin bản mạch hiện tại bắn vào var boards = _scanningLogsService.Get_SCANNING_LOGS(boardNo).FirstOrDefault(); // Nếu đã được khởi tạo trước đó, thì thực hiện các bước kiểm tra tiếp theo if (boards != null) { //Lấy thông tin PROCESS_NO hiện tại theo PRODUCT_ID của board hiện tại var process_No = _inspectionProcessesService.GET_INSPECTION_PROCESSES_BY_PRODUCT_ID(boards.PRODUCT_ID); // Nếu có dữ liệu, thì thực hiện các bước tiếp theo if (process_No != null) { //trạng thái bản mạch hiện tại var curentStationNo = _workOrderItemService.Get_WORK_ORDER_ITEMS_By_BoardNo(boardNo); if (curentStationNo != null) { // nếu đã đã chạy qua các bước, với trạng thái là Finished // thì thông báo cho người dùng biết if (curentStationNo.IS_FINISHED == true) { messageError = $"Board '{boardNo}' is finished!"; MessageHelpers.SetErrorStatus(true, "NG", messageError, lblStatus, lblMessage); CheckTextBoxNullValue.SetColorErrorTextControl(txtBarcode); var errorForm = new FormError(messageError); errorForm.ShowDialog(); txtBarcode.Focus(); } // Kiểm tra nếu trạng thái bản mạch hiện tại bị NG // mà khác với với trạm được cài đặt "FCT" thì thông báo lỗi else if (curentStationNo.BOARD_STATE == 2) { //messageError = $"Board '{boardNo}' bị 'NG' tại trạm '{set_station_no}'!"; //MessageHelpers.SetErrorStatus(true, "NG", messageError, lblStatus, lblMessage); //CheckTextBoxNullValue.SetColorErrorTextControl(txtBarcode); //var errorForm = new FormError(messageError); //errorForm.ShowDialog(); //txtBarcode.Focus(); //return; Excute(boardNo, boards.PRODUCT_ID); } // Nếu tên trạm hiện tại giống vs tên cài đặt, thì thông báo đã chạy qua công đoạn này rồi else if (curentStationNo.STATION_NO == set_station_no && curentStationNo.BOARD_STATE == 1) { //messageError = $"Board '{boardNo}' is pass '{set_station_no}'!"; //MessageHelpers.SetErrorStatus(true, "NG", messageError, lblStatus, lblMessage); //CheckTextBoxNullValue.SetColorErrorTextControl(txtBarcode); //var errorForm = new FormError(messageError); //errorForm.ShowDialog(); //txtBarcode.Focus(); //return; Excute(boardNo, boards.PRODUCT_ID); } else { var process_Designer = _inspectionProcessesDesignersService.GET_INSPECTION_PROCEDURE_DESIGNERS_BY_PROCESS_NO(process_No.PROCESS_NO); // Set station no var process_by_station_no = process_Designer.FirstOrDefault(item => item.STATION_NO == set_station_no); // Nếu trong process_Designer không có STATION_NO giống với // station_no curent thì thông báo cho người dùng biết if (process_by_station_no == null) { messageError = $"Board '{boardNo}' station '{set_station_no}' not invaild!"; MessageHelpers.SetErrorStatus(true, "NG", messageError, lblStatus, lblMessage); CheckTextBoxNullValue.SetColorErrorTextControl(txtBarcode); var errorForm = new FormError(messageError); errorForm.ShowDialog(); txtBarcode.Focus(); } // nếu hợp lệ thực hiện tiếp else { // Khi hai giá trị bằng nhau => ICT_FUJ if (curentStationNo.PROCEDURE_INDEX < (process_by_station_no.INDEX - 1)) { messageError = $"Board '{boardNo}' bỏ qua công đoạn!"; MessageHelpers.SetErrorStatus(true, "NG", messageError, lblStatus, lblMessage); CheckTextBoxNullValue.SetColorErrorTextControl(txtBarcode); var errorForm = new FormError(messageError); errorForm.ShowDialog(); txtBarcode.Focus(); } //// Nếu Index Board > Set Index else if (curentStationNo.PROCEDURE_INDEX > process_by_station_no.INDEX) { Excute(boardNo, boards.PRODUCT_ID); } else if (curentStationNo.PROCEDURE_INDEX == (process_by_station_no.INDEX - 1)) { Excute(boardNo, boards.PRODUCT_ID); } else if (curentStationNo.BOARD_STATE == 2) { Excute(boardNo, boards.PRODUCT_ID); } } } } else { messageError = $"Không tìm thấy trạm nào với tên '{curentStationNo.STATION_NO}'!"; MessageHelpers.SetErrorStatus(true, "NG", messageError, lblStatus, lblMessage); CheckTextBoxNullValue.SetColorErrorTextControl(txtBarcode); var errorForm = new FormError(messageError); errorForm.ShowDialog(); txtBarcode.Focus(); } } // PROCESS_NO = null thì thông báo lỗi else { messageError = $"Không tìm thấy trạm nào với tên '{set_station_no}'!"; MessageHelpers.SetErrorStatus(true, "NG", messageError, lblStatus, lblMessage); CheckTextBoxNullValue.SetColorErrorTextControl(txtBarcode); var errorForm = new FormError(messageError); errorForm.ShowDialog(); txtBarcode.Focus(); } } // Nếu chưa có thì thông báo lỗi cho người dùng else { messageError = $"Board '{boardNo}' chưa được khởi tạo. Vui lòng kiểm tra lại!"; MessageHelpers.SetErrorStatus(true, "NG", messageError, lblStatus, lblMessage); CheckTextBoxNullValue.SetColorErrorTextControl(txtBarcode); var errorForm = new FormError(messageError); errorForm.ShowDialog(); txtBarcode.Focus(); } } } }
private void txtBarcode_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) { if (e.KeyCode == Keys.Enter) { string boardNo = txtBarcode.Text; dateCheck = Ultils.GetNetworkDateTime().ToString("yyMMddHHmmss"); if (boardNo.Contains("=")) { boardNo = boardNo.Replace("=", "_"); } string set_station_no = gridLookUpEditProcessID.EditValue.ToString(); if (!CheckTextBoxNullValue.ValidationTextEditNullValue(txtBarcode)) { MessageHelpers.SetErrorStatus(true, "NG", "Please input a barcode!", lblStatus, lblMessage); return; } else if (txtBarcode.Text.Length <= 5) { MessageHelpers.SetErrorStatus(true, "NG", "Board No invaild. Please try again!", lblStatus, lblMessage); CheckTextBoxNullValue.SetColorErrorTextControl(txtBarcode); return; } else { MessageHelpers.SetDefaultStatus(true, "N/A", "N/A", lblStatus, lblMessage); CheckTextBoxNullValue.SetColorDefaultTextControl(txtBarcode); // Lấy toàn bộ thông tin bản mạch hiện tại bắn vào var boards = _scanningLogsService.Get_SCANNING_LOGS(boardNo).FirstOrDefault(); // Nếu đã được khởi tạo trước đó, thì thực hiện các bước kiểm tra tiếp theo if (boards != null) { //Lấy thông tin PROCESS_NO hiện tại theo PRODUCT_ID của board hiện tại var process_No = _inspectionProcessesService.GET_INSPECTION_PROCESSES_BY_PRODUCT_ID(boards.PRODUCT_ID); // Nếu có dữ liệu, thì thực hiện các bước tiếp theo if (process_No != null) { //trạng thái bản mạch hiện tại var curentStationNo = _workOrderItemService.Get_WORK_ORDER_ITEMS_By_BoardNo(boardNo); if (curentStationNo != null) { // nếu đã đã chạy qua các bước, với trạng thái là Finished // thì thông báo cho người dùng biết if (curentStationNo.IS_FINISHED == true) { messageError = $"Board '{boardNo}' is finished!"; MessageHelpers.SetErrorStatus(true, "NG", messageError, lblStatus, lblMessage); CheckTextBoxNullValue.SetColorErrorTextControl(txtBarcode); var errorForm = new FormError(messageError); errorForm.ShowDialog(); txtBarcode.Focus(); } // Kiểm tra nếu trạng thái bản mạch hiện tại bị NG // mà khác với với trạm được cài đặt "FCT" thì thông báo lỗi else if (curentStationNo.BOARD_STATE == 2) { //messageError = $"Board '{boardNo}' bị 'NG' tại trạm '{set_station_no}'!"; //MessageHelpers.SetErrorStatus(true, "NG", messageError, lblStatus, lblMessage); //CheckTextBoxNullValue.SetColorErrorTextControl(txtBarcode); //var errorForm = new FormError(messageError); //errorForm.ShowDialog(); //txtBarcode.Focus(); //return; Excute(boardNo, boards.PRODUCT_ID); } // Nếu tên giống nhau, thì thông báo đã chạy qua công đoạn này rồi else if (curentStationNo.STATION_NO == set_station_no && curentStationNo.BOARD_STATE == 1) { //messageError = $"Board '{boardNo}' is pass '{set_station_no}'!"; //MessageHelpers.SetErrorStatus(true, "NG", messageError, lblStatus, lblMessage); //CheckTextBoxNullValue.SetColorErrorTextControl(txtBarcode); //var errorForm = new FormError(messageError); //errorForm.ShowDialog(); //txtBarcode.Focus(); //return; Excute(boardNo, boards.PRODUCT_ID); } else { var process_Designer = _inspectionProcessesDesignersService.GET_INSPECTION_PROCEDURE_DESIGNERS_BY_PROCESS_NO(process_No.PROCESS_NO); // Set station no var process_by_station_no = process_Designer.FirstOrDefault(item => item.STATION_NO == set_station_no); // Nếu trong process_Designer không có STATION_NO giống với // station_no curent thì thông báo cho người dùng biết if (process_by_station_no == null) { messageError = $"Board '{boardNo}' station '{set_station_no}' not invaild!"; MessageHelpers.SetErrorStatus(true, "NG", messageError, lblStatus, lblMessage); CheckTextBoxNullValue.SetColorErrorTextControl(txtBarcode); var errorForm = new FormError(messageError); errorForm.ShowDialog(); txtBarcode.Focus(); } // nếu hợp lệ thực hiện tiếp else { // Khi hai giá trị bằng nhau => ICT_FUJ if (curentStationNo.PROCEDURE_INDEX < (process_by_station_no.INDEX - 1)) { messageError = $"Board '{boardNo}' bỏ qua công đoạn!"; MessageHelpers.SetErrorStatus(true, "NG", messageError, lblStatus, lblMessage); CheckTextBoxNullValue.SetColorErrorTextControl(txtBarcode); var errorForm = new FormError(messageError); errorForm.ShowDialog(); txtBarcode.Focus(); } //// Nếu Index Board > Set Index else if (curentStationNo.PROCEDURE_INDEX > process_by_station_no.INDEX) { // transferred to the next station. //messageError = $"Board '{boardNo}' đã PASS ở trạm này rồi. Chuyển đến công đoạn tiếp theo để kiểm tra!"; //MessageHelpers.SetErrorStatus(true, "NG", messageError, lblStatus, lblMessage); //CheckTextBoxNullValue.SetColorErrorTextControl(txtBarcode); //var errorForm = new FormError(messageError); //errorForm.ShowDialog(); //txtBarcode.Focus(); //return; Excute(boardNo, boards.PRODUCT_ID); } else if (curentStationNo.PROCEDURE_INDEX == (process_by_station_no.INDEX - 1)) { Excute(boardNo, boards.PRODUCT_ID); } else if(curentStationNo.BOARD_STATE == 2) { Excute(boardNo, boards.PRODUCT_ID); } } } } else { messageError = $"Không tìm thấy trạm nào với tên '{curentStationNo.STATION_NO}'!"; MessageHelpers.SetErrorStatus(true, "NG", messageError, lblStatus, lblMessage); CheckTextBoxNullValue.SetColorErrorTextControl(txtBarcode); var errorForm = new FormError(messageError); errorForm.ShowDialog(); txtBarcode.Focus(); } } // PROCESS_NO = null thì thông báo lỗi else { messageError = $"Không tìm thấy trạm nào với tên '{set_station_no}'!"; MessageHelpers.SetErrorStatus(true, "NG", messageError, lblStatus, lblMessage); CheckTextBoxNullValue.SetColorErrorTextControl(txtBarcode); var errorForm = new FormError(messageError); errorForm.ShowDialog(); txtBarcode.Focus(); } } // Nếu chưa có thì thông báo lỗi cho người dùng else { messageError = $"Board '{boardNo}' chưa được khởi tạo. Vui lòng kiểm tra lại!"; MessageHelpers.SetErrorStatus(true, "NG", messageError, lblStatus, lblMessage); CheckTextBoxNullValue.SetColorErrorTextControl(txtBarcode); var errorForm = new FormError(messageError); errorForm.ShowDialog(); txtBarcode.Focus(); } } } }