/// <summary> /// Insert Log /// </summary> /// <param name="boxId"></param> private void InsertLog(string boxId) { if (!string.IsNullOrEmpty(txtProductID.Text.Trim()) || !string.IsNullOrEmpty(txtBoxID.Text.Trim())) { int lineId = Program.CurrentUser.LineID; int operationId = Program.CurrentUser.OperationID; string operatorId = Program.CurrentUser.OperatorCode; string productionId = txtProductID.Text.Trim(); string status = null; bool judge = false; if (checkPASS.Checked == true) { status = "P"; judge = true; } if (checkNG.Checked == true) { status = "F"; judge = false; } var logs = _oqcService.GetLogsByBoxId(boxId).ToList(); if (operationId == 1) { // Nếu Box có dữ liệu của PCB if (logs.Any()) { var log = logs.SingleOrDefault(l => l.ProductionID == productionId); // Nếu PCB mới bắn vào chưa có trong Box if (log == null) { //string tmp = lblQuantityModel.Text.Replace("/", ""); //int countPcbInBox = int.Parse(lblCountPCB.Text); //int quantity = int.Parse(tmp); //if (logs.Count == quantity) //{ // SetErrorStatus("NG", $"Box [{txtBoxID.Text}] đã đủ số lượng. Vui lòng kiểm tra lại!"); // Ultils.EditTextErrorNoMessage(txtBoxID); // txtProductID.ResetText(); //} //else //{ try { _iqcService.InsertLogs(productionId, lineId, "N/A", boxId, modelID, "N/T", 1, operatorId, false, "IT", StringHelper.GetInfo(), "N/A"); if (!_iqcService.CheckResultExits(productionId, operationId)) { _iqcService.InsertResult(productionId, operationId, judge, operatorId, _dateTimeCheck); } else { _iqcService.UpdateResult(productionId, operationId, judge, operatorId); } Ultils.CreateFileLog(lblCurentModel.Text, productionId, status, Program.CurrentUser.ProcessID, _dateTimeCheck); Ultils.CreateFileLogDirModelName(lblCurentModel.Text, productionId, status, Program.CurrentUser.ProcessID, _dateTimeCheck); logs = _oqcService.GetLogsByBoxId(boxId).ToList(); gridControlData.Refresh(); gridControlData.DataSource = logs; lblCountPCB.Text = logs.Count.ToString(CultureInfo.InvariantCulture); SetSuccessStatus("OK", $"Thành công!\nPCB [{txtProductID.Text}]"); ResetControls(); //if (logs.Count() == quantity) //{ // SetErrorStatus("NG", $"Box [{txtBoxID.Text}] đã đủ số lượng. Vui lòng lấy box mới!"); // Ultils.EditTextErrorNoMessage(txtBoxID); // txtProductID.ResetText(); //} } catch (Exception ex) { SetErrorStatus("NG", "Model chưa có trong hệ thống!\nVui lòng nhập model này vào, và thử lại. \n" + ex.Message); ResetControls(); } //} } // Nếu có rồi thì thống báo lỗi else { SetErrorStatus("NG", $"PCB [{txtProductID.Text}] này đã có trong Box rồi.\nVui lòng kiểm tra lại"); ResetControls(); gridControlData.Refresh(); gridControlData.DataSource = logs; lblCountPCB.Text = logs.Count.ToString(CultureInfo.InvariantCulture); } } // Nếu Box chưa có dữ liệu gì, thực hiện insert else { try { _iqcService.InsertLogs(productionId, lineId, "N/A", boxId, modelID, "N/T", 1, operatorId, false, "IT", StringHelper.GetInfo(), "N/A"); if (!_iqcService.CheckResultExits(txtProductID.Text, operationId)) { _iqcService.InsertResult(productionId, operationId, judge, operatorId, _dateTimeCheck); } else { _iqcService.UpdateResult(productionId, operationId, judge, operatorId); } Ultils.CreateFileLog(lblCurentModel.Text, productionId, status, Program.CurrentUser.ProcessID, _dateTimeCheck); Ultils.CreateFileLogDirModelName(lblCurentModel.Text, productionId, status, Program.CurrentUser.ProcessID, _dateTimeCheck); logs = _oqcService.GetLogsByBoxId(boxId).ToList(); gridControlData.Refresh(); gridControlData.DataSource = logs; lblCountPCB.Text = logs.Count.ToString(CultureInfo.InvariantCulture); SetSuccessStatus("OK", string.Format("Thêm thành công!\nPCB [{0}]", productionId)); ResetControls(); } catch (Exception ex) { SetErrorStatus("NG", "Error Insert! \n" + ex.Message); ResetControls(); } } } else if (operationId >= 2) { _iqcService.UpdateLogs(productionId, lineId, "N/A", boxId, modelID, null, operatorId, "N/A"); _iqcService.InsertResult(productionId, operationId, judge, operatorId, _dateTimeCheck); logs = _oqcService.GetLogsByBoxId(boxId).ToList(); gridControlData.Refresh(); gridControlData.DataSource = logs; lblCountPCB.Text = logs.Count.ToString(CultureInfo.InvariantCulture); SetSuccessStatus("OK", string.Format("Thành công!\nPCB [{0}] vừa được bắn lại lần {1}", productionId, operationId)); ResetControls(); } } else { SetErrorStatus("NG", "Vui lòng nhập đủ thông tin!"); txtProductID.Focus(); txtProductID.SelectAll(); } }
/// <summary> /// Insert Log /// </summary> /// <param name="boxId"></param> private void InsertLog(string boxId) { if (!string.IsNullOrEmpty(txtProductID.Text.Trim()) || !string.IsNullOrEmpty(txtBoxID.Text.Trim()) || !string.IsNullOrEmpty(txtModelUMC.Text.Trim())) { int lineId = Program.CurrentUser.LineID; int operationId = Program.CurrentUser.OperationID; string operatorId = Program.CurrentUser.OperatorCode; string productionId = txtProductID.Text.Trim(); string status = null; bool judge = false; if (checkPASS.Checked == true) { status = "P"; judge = true; } if (checkNG.Checked == true) { status = "F"; judge = false; } var logs = _murataService.GetProducts_Murata_by_BoxId(boxId).ToList(); // Nếu Box có dữ liệu của PCB if (logs.Any()) { var log = logs.SingleOrDefault(l => l.ProductionID == productionId); // Nếu PCB mới bắn vào chưa có trong Box if (log == null) { var checkModelInBox = logs.FirstOrDefault(); // Nếu Production ID, có Model giống với Model hiện tại if (productionId.Contains(checkModelInBox.ModelName)) { string tmp = lblQuantityModel.Text.Replace("/", ""); int countPcbInBox = int.Parse(lblCountPCB.Text); int quantity = int.Parse(tmp); if (logs.Count == quantity) { SetErrorStatus("NG", $"Box [{boxId}] đã đủ số lượng. Vui lòng kiểm tra lại!"); Ultils.EditTextErrorNoMessage(txtBoxID); EnableBoxIDWidthModel(true); if (checkModelCUS.Checked == true) { EnbaleCheckWidthModelCus(true); } else { EnbaleCheckWidthModelCus(false); } txtProductID.ResetText(); } else { try { if (checkNG.Checked == false) { _murataService.InsertLogs(productionId, lineId, boxId, modelID, lblCurentModel.Text, operatorId, txtModelCUS.Text.Trim(), judge); } Ultils.CreateFileLog(lblCurentModel.Text, productionId, status, Program.CurrentUser.ProcessID, _dateTimeCheck); Ultils.CreateFileLogDirModelName(lblCurentModel.Text, productionId, status, Program.CurrentUser.ProcessID, _dateTimeCheck); logs = _murataService.GetProducts_Murata_by_BoxId(boxId).ToList(); gridControlData.Refresh(); gridControlData.DataSource = logs; lblCountPCB.Text = logs.Count.ToString(CultureInfo.InvariantCulture); SetSuccessStatus("OK", $"Thành công!\nPCB [{txtProductID.Text}]"); ResetControls(); if (logs.Count() == quantity) { SetErrorStatus("OK", $"Box [{txtBoxID.Text}] đã đủ số lượng. Vui lòng lấy box mới!"); Ultils.EditTextErrorNoMessage(txtBoxID); EnableBoxIDWidthModel(true); if (checkModelCUS.Checked == true) { EnbaleCheckWidthModelCus(true); } else { EnbaleCheckWidthModelCus(false); } txtProductID.ResetText(); } } catch (Exception ex) { SetErrorStatus("NG", "Model chưa có trong hệ thống!\nVui lòng nhập model này vào, và thử lại. \n" + ex.Message); ResetControls(); } } } else { SetErrorStatus("NG", "Sai Model! Vui lòng kiểm tra và thử lại!"); Ultils.EditTextErrorNoMessage(txtProductID); ResetControls(); logs = _murataService.GetProducts_Murata_by_BoxId(boxId).ToList(); gridControlData.Refresh(); gridControlData.DataSource = logs; lblCountPCB.Text = logs.Count.ToString(CultureInfo.InvariantCulture); } } // Nếu có rồi thì thống báo lỗi else { SetErrorStatus("NG", $"PCB [{txtProductID.Text}] này đã có trong Box rồi.\nVui lòng kiểm tra lại"); ResetControls(); gridControlData.Refresh(); gridControlData.DataSource = logs; lblCountPCB.Text = logs.Count.ToString(CultureInfo.InvariantCulture); } } // Nếu Box chưa có dữ liệu gì, thực hiện insert else { try { if (checkNG.Checked == false) { _murataService.InsertLogs(productionId, lineId, boxId, modelID, lblCurentModel.Text, operatorId, txtModelCUS.Text.Trim(), judge); } Ultils.CreateFileLog(lblCurentModel.Text, productionId, status, Program.CurrentUser.ProcessID, _dateTimeCheck); Ultils.CreateFileLogDirModelName(lblCurentModel.Text, productionId, status, Program.CurrentUser.ProcessID, _dateTimeCheck); logs = _murataService.GetProducts_Murata_by_BoxId(boxId).ToList(); gridControlData.Refresh(); gridControlData.DataSource = logs; lblCountPCB.Text = logs.Count.ToString(CultureInfo.InvariantCulture); SetSuccessStatus("OK", string.Format("Thêm thành công!\nPCB [{0}]", productionId)); ResetControls(); } catch (Exception ex) { SetErrorStatus("NG", "Error Insert! \n" + ex.Message); ResetControls(); } } } else { SetErrorStatus("NG", "Vui lòng nhập đủ thông tin!"); EnableBoxIDWidthModel(true); txtBoxID.Focus(); } }