public static double CalculateCurrentShiftEff(CurrentMstOrder currentMstOrder, DataGridView mstGrid) { List <OrderDataForEfficiencyStructure> currentShiftOrders = GetCurrentShiftMstOrders(mstGrid); List <Tuple <double, double> > ordersEffDurationList = new List <Tuple <double, double> >(); if ((currentMstOrder.LastUpdateTime - currentMstOrder.DateStart).TotalHours > 0 & currentMstOrder.Nc10 != "") { ordersEffDurationList.Add(new Tuple <double, double>(EfficiencyCalculation.CalculateEfficiency(currentMstOrder.DateStart, currentMstOrder.LastUpdateTime, currentMstOrder.Nc10, currentMstOrder.MadeQty, true), (currentMstOrder.LastUpdateTime - currentMstOrder.DateStart).TotalHours)); } foreach (var order in currentShiftOrders) { try { ordersEffDurationList.Add(new Tuple <double, double>( EfficiencyCalculation.CalculateEfficiency(order.start, order.end, order.modelId, order.qty, true), (order.end - order.start).TotalHours)); } catch { continue; } } if (ordersEffDurationList.Count > 0) { return(EfficiencyCalculation.WeightedAverage(ordersEffDurationList) * 100); } return(-1); }
private void button3_Click(object sender, EventArgs e) { using (MstOrder mstOrderForm = new MstOrder(smtLine)) { if (mstOrderForm.ShowDialog() == DialogResult.OK) { currentMstOrder = mstOrderForm.currentMstOrderData; DataTable ledInfoTable = MST.MES.SqlOperations.SparingLedInfo.GetReelsForLot(currentMstOrder.OrderNumber); UpdateMstLabels(); DgvTools.PrepareDgvForBins(dataGridViewMstLedReels, currentMstOrder.BinQty); DgvTools.PrepareDgvForBins(dataGridViewLedTrash, currentMstOrder.BinQty); timerMstUpdate.Enabled = true; } } }
public static void AddReelToTrash(string nc12, string id, DataGridView grid, ref CurrentMstOrder currentOrder) { ledReelData reel = null; foreach (var ledReel in currentOrder.LedReels) { if (ledReel.NC12 == nc12 & ledReel.ID == id) { reel = ledReel; } } if (reel != null) { int binRow = 0; for (int r = 0; r < grid.Rows.Count; r++) { if (grid.Rows[r].Cells[0].Value == null) { continue; } if (grid.Rows[r].Cells[0].Value.ToString() == reel.Rank) { binRow = r; break; } } grid.Rows.Insert(binRow + 1, nc12, id, reel.Ilosc); reel.RemovedToTrash = true; foreach (DataGridViewColumn col in grid.Columns) { col.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; } } else { MessageBox.Show("Nieznana rolka LED"); } }
public static void AddReelToGrid(string nc12, string id, DataGridView grid, ref CurrentMstOrder currentOrder) { DataTable reelTable = MST.MES.SqlOperations.SparingLedInfo.GetInfoFor12NC_ID(nc12, id); string qty = reelTable.Rows[0]["Ilosc"].ToString(); string binId = reelTable.Rows[0]["Tara"].ToString(); string zlecenieString = reelTable.Rows[0]["ZlecenieString"].ToString(); if (currentOrder.OrderNumber == zlecenieString) { int binRow = 0; for (int r = 0; r < grid.Rows.Count; r++) { if (grid.Rows[r].Cells[0].Value == null) { continue; } if (grid.Rows[r].Cells[0].Value.ToString() == binId) { binRow = r; break; } } grid.Rows.Insert(binRow + 1, nc12, id, qty); ledReelData newReel = new ledReelData(nc12, double.Parse(qty), "", "", zlecenieString, id, binId); currentOrder.LedReels.Add(newReel); DgvTools.SumUpLedsInBins(grid); foreach (DataGridViewColumn col in grid.Columns) { col.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; } } else { MessageBox.Show("Ta rolka LED przypisana jest zlecenia: " + zlecenieString); } }
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; } } } }
public FinishMstOrder(ref CurrentMstOrder currentOrder, string smtLine) { InitializeComponent(); this.currentOrder = currentOrder; this.smtLine = smtLine; }