private void UpdateMstOrder() { using (UpdateMstQty updForm = new UpdateMstQty(currentMstOrder.LastUpdateTime, currentMstOrder.MadeQty, currentMstOrder.PcbOnMb)) { updateFormDisplayed = true; if (updForm.ShowDialog() == DialogResult.OK) { currentMstOrder.LastUpdateTime = (DateTime.Now - currentMstOrder.DateStart).TotalMinutes >= 1 ? DateTime.Now : DateTime.Now.AddMinutes(1); currentMstOrder.MadeQty = updForm.newTotalQty; UpdateMstLabels(); updateFormDisplayed = false; if (currentMstOrder.RecordId > 0) { //update SqlOperations.UpdateCurrentMstOrderQuantity(currentMstOrder.MadeQty, currentMstOrder.RecordId); } else { //insert SqlOperations.SaveRecordToDb(currentMstOrder.DateStart, DateTime.Now, smtLine, currentMstOrder.Oper, currentMstOrder.OrderNumber, currentMstOrder.Nc10, currentMstOrder.MadeQty.ToString(), "0", "0", "check", "", currentMstOrder.Stencil, "MST", 0); int lastRecordId = 0; lastRecordId = SqlOperations.GetLastRecordIdForLine(smtLine); if (lastRecordId > 0) { currentMstOrder.RecordId = lastRecordId; } } var eff = Math.Round(MstCurrentShiftEfficiency.CalculateCurrentShiftEff(currentMstOrder, dataGridViewMstOrders), 0); angularGauge1.Value = Math.Min(100, eff); labelCurrentShiftEfficiency.Text = $"Wydajność aktualnej zmiany: {eff}%"; } } }
private void MstSaveOrder_Click(object sender, EventArgs e) { if (currentMstOrder.OrderNumber.Trim() != "") { timerMstUpdate.Enabled = false; using (FinishMstOrder finishForm = new FinishMstOrder(ref currentMstOrder, smtLine)) { if (finishForm.ShowDialog() == DialogResult.OK) { if (currentMstOrder.RecordId > 0) { SqlOperations.UpdateCurrentMstOrderQuantity(currentMstOrder.MadeQty, currentMstOrder.RecordId); } else { SqlOperations.SaveRecordToDb(currentMstOrder.DateStart, DateTime.Now, smtLine, currentMstOrder.Oper, currentMstOrder.OrderNumber, currentMstOrder.Nc10, currentMstOrder.MadeQty.ToString(), "0", "0", "check", "", currentMstOrder.Stencil, "MST", 0); } double efficiency = Math.Round(EfficiencyCalculation.CalculateEfficiency(currentMstOrder.DateStart, DateTime.Now, currentMstOrder.Nc10, currentMstOrder.MadeQty, true) * 100, 0); dataGridViewMstOrders.Rows.Insert(0, currentMstOrder.DateStart, DateTime.Now, currentMstOrder.OrderNumber, currentMstOrder.Nc10.Insert(4, " ").Insert(8, " "), currentMstOrder.MadeQty, efficiency + "%", currentMstOrder.ModelName); currentMstOrder = new CurrentMstOrder("Brak", "Brak", 0, 0, DateTime.Now, "Brak", "0000000000", DateTime.Now, 0, 0, 0, 0, new List <ledReelData>(), "Brak", 0, 0); dataGridViewMstLedReels.Rows.Clear(); dataGridViewLedTrash.Rows.Clear(); UpdateMstLabels(); DgvTools.CleanUpMstDgv(dataGridViewMstOrders); var eff = Math.Round(MstCurrentShiftEfficiency.CalculateCurrentShiftEff(currentMstOrder, dataGridViewMstOrders), 0); angularGauge1.Value = Math.Min(100, eff); labelCurrentShiftEfficiency.Text = $"Wydajność aktualnej zmiany: {eff}%"; } else { timerMstUpdate.Enabled = true; } } } }
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e) { if (!suspendCellVelueChangedEvent) { int ngIndex = dataGridViewLg.Columns.IndexOf(dataGridViewLg.Columns["Ng"]); int scrapIndex = dataGridViewLg.Columns.IndexOf(dataGridViewLg.Columns["Scrap"]); // Debug.WriteLine("Cell value changed: " + e.RowIndex + " " + e.ColumnIndex); //calculate good qty if (dataGridViewLg.Rows.Count > 0 & (e.ColumnIndex == ngIndex || e.ColumnIndex == scrapIndex)) { int rowIndex = e.RowIndex; DataGridViewCell ngCell = dataGridViewLg.Rows[rowIndex].Cells["Ng"]; DataGridViewCell scrapCell = dataGridViewLg.Rows[rowIndex].Cells["Scrap"]; double ngValue = -9999; double scrapValue = -9999; if (ngCell.Value != null) { if (!(double.TryParse(ngCell.Value.ToString(), out ngValue))) { dataGridViewLg.Rows[e.RowIndex].Cells[ngIndex].Value = null; ngValue = -9999; } else { //ng ,0 will be 0 dataGridViewLg.Rows[e.RowIndex].Cells[ngIndex].Value = ngValue; } } if (dataGridViewLg.Columns["Scrap"].Visible) { if (scrapCell.Value != null) { if (!(double.TryParse(scrapCell.Value.ToString(), out scrapValue))) { dataGridViewLg.Rows[e.RowIndex].Cells[scrapIndex].Value = null; scrapValue = -9999; } } } else { scrapValue = 0; } if (ngValue > -9999 & scrapValue > -9999 & dataGridViewLg.Rows[e.RowIndex].Cells["ColumnQty"].Value != null) { double orderedQty = double.Parse(dataGridViewLg.Rows[e.RowIndex].Cells["ColumnQty"].Value.ToString()); double goodQty = orderedQty - ngValue - scrapValue; dataGridViewLg.Rows[e.RowIndex].Cells["goodQty"].Value = goodQty; } else { dataGridViewLg.Rows[e.RowIndex].Cells["goodQty"].Value = ""; } } //saving finished LOT foreach (DataGridViewRow row in dataGridViewLg.Rows) { //Debug.WriteLine("Checking chkBox row:" + row.Index + " " + Convert.ToBoolean(row.Cells["ColumnSaved"].Value)); if (!Convert.ToBoolean(row.Cells["ColumnSaved"].Value)) { if (IsRowReadyToBeSaved(row)) { //Debug.WriteLine("Saving row:" + row.Index); DataGridViewCheckBoxCell ch = (DataGridViewCheckBoxCell)row.Cells["ColumnSaved"]; suspendCellVelueChangedEvent = true; lotFinished(ch, row.Index); suspendCellVelueChangedEvent = false; DateTime startDate = (DateTime)row.Cells["StartDate"].Value; DateTime endDate = (DateTime)row.Cells["EndDate"].Value; string firstPieceCheck = ""; string stencil = Tools.getCellValue(row.Cells["Stencil"]); LedLeftovers ledLeftovers = (LedLeftovers)row.Cells["ColumnButtonLed"].Tag; double totalLedsUsed = 0; string leftovers = ledLeftovers.RankA[0].ID + ":" + ledLeftovers.RankA[0].Nc12 + ":" + ledLeftovers.RankA[0].QtyLeft + "|" + ledLeftovers.RankB[0].ID + ":" + ledLeftovers.RankB[0].Nc12 + ":" + ledLeftovers.RankB[0].QtyLeft; for (int i = 0; i < ledLeftovers.RankA.Count; i++) { totalLedsUsed += ledLeftovers.RankA[i].StartQty - ledLeftovers.RankA[i].QtyLeft; totalLedsUsed += ledLeftovers.RankB[i].StartQty - ledLeftovers.RankB[i].QtyLeft; if (i > 0) { leftovers += "#" + ledLeftovers.RankA[i].ID + ":" + ledLeftovers.RankA[i].Nc12 + ":" + ledLeftovers.RankA[i].QtyLeft + "|" + ledLeftovers.RankB[i].ID + ":" + ledLeftovers.RankB[i].Nc12 + ":" + ledLeftovers.RankB[i].QtyLeft; } } if (row.Cells["ColumnQualityCheck"].Tag != null) { firstPieceCheck = row.Cells["ColumnQualityCheck"].Tag.ToString(); } string scrap = "0"; if (dataGridViewLg.Columns["Scrap"].Visible) { scrap = row.Cells["Scrap"].Value.ToString(); } SqlOperations.SaveRecordToDb( startDate, endDate, smtLine, row.Cells["Operator"].Value.ToString(), row.Cells["ColumnLot"].Value.ToString(), row.Cells["ColumnModel"].Value.ToString(), row.Cells["goodQty"].Value.ToString(), row.Cells["Ng"].Value.ToString(), scrap, firstPieceCheck, leftovers, stencil, "LG", totalLedsUsed); // Debug.WriteLine("Saved"); DgvTools.CleanUpLgiDgv(dataGridViewLg); } } } dataGridViewLg.HorizontalScrollingOffset = 0; } }