private void UpdateCurrentModelEffNorm() { if (dataGridViewLg.Rows.Count > 0) { LedLeftovers ledLeftovers = (LedLeftovers)dataGridViewLg.Rows[0].Cells["ColumnButtonLed"].Tag; int headsUsed = 2; if (ledLeftovers.RankA.Count() > 0) { headsUsed = ledLeftovers.RankA.Count * 2; } string model = dataGridViewLg.Rows[0].Cells["ColumnModel"].Value.ToString(); double orderedQty = double.Parse(dataGridViewLg.Rows[0].Cells["ColumnQty"].Value.ToString()); var norm = EfficiencyCalculation.CalculateModelNormPerHour(model, smtLine, headsUsed); labelLgModelName.Text = $"Czas cyklu: {norm.lineCT}sek"; labelLgNormPerH.Text = $"Norma szt/h: {norm.outputPerHour}"; labelLgLotNorm.Text = $"Norma na LOT: {Math.Round(orderedQty * 60 / norm.outputPerHour,0)}min"; labelLgHeadCount.Text = $"Używane głowice: {headsUsed}"; labelLgNormModelName.Text = $"Norma modelu: {norm.modelSpec.model12Nc}"; } }
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 LoadMstOrdersFromDb(int recordsQuantity) { var nc = MST.MES.SqlOperations.ConnectDB.Nc12ToModelFullDict(); DataTable sqlTable = SqlOperations.GetMstSmtRecordsFromDb(recordsQuantity, smtLine); var smto = MST.MES.SqlDataReaderMethods.SMT.GetOneOrder(""); dataGridViewMstOrders.Columns["MstOrdersStart"].DefaultCellStyle.Format = "HH:mm dd-MMM"; dataGridViewMstOrders.Columns["MstOrdersEnd"].DefaultCellStyle.Format = "HH:mm dd-MMM"; List <EfficiencyCalculation.OrderDataForEfficiencyStructure> ordersEff = new List <EfficiencyCalculation.OrderDataForEfficiencyStructure>(); if (sqlTable.Rows.Count > 0) { HashSet <string> nc12ToModelList = new HashSet <string>(); foreach (DataRow row in sqlTable.Rows) { DateTime startDate = DateTime.Parse(row["DataCzasStart"].ToString().Trim()); DateTime endDate = DateTime.Parse(row["DataCzasKoniec"].ToString().Trim()); string nc10 = row["Model"].ToString(); double qty = 0; string orderNo = row["NrZlecenia"].ToString(); double efficiency = 0; if (double.TryParse(row["IloscWykonana"].ToString(), out qty)) { efficiency = Math.Round(EfficiencyCalculation.CalculateEfficiency(startDate, endDate, nc10, qty, true) * 100, 0); } string name = nc.ContainsKey(nc10 + "00") ? nc[nc10 + "00"] : nc10; dataGridViewMstOrders.Rows.Insert(0, startDate, endDate, orderNo, nc10.Insert(4, " ").Insert(8, " "), qty, efficiency + "%", name); nc12ToModelList.Add(nc10 + "00"); ordersEff.Add(new EfficiencyCalculation.OrderDataForEfficiencyStructure() { start = startDate, end = endDate, qty = qty, modelId = nc10 }); var owningShift = DateTools.GetOrderOwningShift(startDate, endDate); var currentShift = DateTools.whatDayShiftIsit(DateTime.Now); //1878856 if (orderNo == "1878856") { ; } if (owningShift.fixedDate != currentShift.fixedDate) { if (owningShift.fixedDate.Date == currentShift.fixedDate.Date) { DgvTools.ColorDgvRow(dataGridViewMstOrders.Rows[0], Color.LightGray); } else { DgvTools.ColorDgvRow(dataGridViewMstOrders.Rows[0], Color.Silver); } } } //Dictionary<string, string> nc12toName = SqlOperations.nc12ToModelDict(nc12ToModelList.ToArray()); //foreach (DataGridViewRow row in dataGridViewMstOrders.Rows) //{ // string nc12 = row.Cells["Column12NC"].Value.ToString().Replace(" ","") + "00"; // row.Cells["ColumnName"].Value = nc12toName[nc12]; //} DgvTools.AutoSizeColumns(dataGridViewMstOrders, DataGridViewAutoSizeColumnMode.AllCells); EfficiencyRecordsForOrdersHistory.FillOutListView(lVMstEfficiencyRecord, ordersEff); } var eff = Math.Round(MstCurrentShiftEfficiency.CalculateCurrentShiftEff(currentMstOrder, dataGridViewMstOrders), 0); angularGauge1.Value = Math.Min(100, eff); labelCurrentShiftEfficiency.Text = $"Wydajność aktualnej zmiany: {eff}%"; }
private void textBoxOrderNumber_Leave(object sender, EventArgs e) { labelModelInfo.Text = ""; //DataTable lotTable = MST.MES.SqlOperations.Kitting.GetKittingTableForLots(new string[] { textBoxOrderNumber.Text }); var kittingInfo = MST.MES.SqlDataReaderMethods.Kitting.GetKittingDataForOrders(new string[] { textBoxOrderNumber.Text }); if (kittingInfo.Count > 0) { var orderInfo = kittingInfo[textBoxOrderNumber.Text]; currentMstOrderData.OrderNumber = textBoxOrderNumber.Text; string modelId = orderInfo.modelId; currentMstOrderData.Nc10 = modelId; currentMstOrderData.ModelName = orderInfo.ModelName;; DataTable modelInfoTable = MST.MES.SqlOperations.MesModels.GetMstModelInfo(modelId); var effPerHour = EfficiencyCalculation.CalculateModelNormPerHour(modelId, smtLine); currentMstOrderData.OrderedQty = (int)orderInfo.orderedQty; currentMstOrderData.OrderNumber = textBoxOrderNumber.Text; currentMstOrderData.PcbOnMb = TryParseNullableCell(modelInfoTable.Rows[0]["SMT_Carrier_QTY"].ToString()); currentMstOrderData.ResQty = TryParseNullableCell(modelInfoTable.Rows[0]["Resistor_Qty"].ToString()); currentMstOrderData.ConnQty = TryParseNullableCell(modelInfoTable.Rows[0]["Conn_Qty"].ToString()); currentMstOrderData.LedQty = TryParseNullableCell(modelInfoTable.Rows[0]["PKG_SUM_QTY"].ToString()); currentMstOrderData.BinQty = (int)orderInfo.numberOfBins; currentMstOrderData.NormPerHour = Math.Round(effPerHour.outputPerHour, 0); textBoxOrderNumber.BackColor = Color.Lime; labelModelInfo.Text += currentMstOrderData.Nc10.Insert(4, " ").Insert(8, " ") + Environment.NewLine + currentMstOrderData.ModelName + Environment.NewLine + "Ilość zlecona: " + currentMstOrderData.OrderedQty; var previousSmtRecords = MST.MES.SqlDataReaderMethods.SMT.GetOneOrder(textBoxOrderNumber.Text); if (previousSmtRecords.totalManufacturedQty > 0) { labelPreviousSmtInfo.Text = "Kontynuacja zlecenia." + Environment.NewLine + $"Do tej pory wykonano: {previousSmtRecords.totalManufacturedQty} szt." + Environment.NewLine + $"Pozostało do wykonania: {currentMstOrderData.OrderedQty - previousSmtRecords.totalManufacturedQty} szt."; currentMstOrderData.PreviouslyManufacturedQty = previousSmtRecords.totalManufacturedQty; } else { labelPreviousSmtInfo.Text = ""; } if (currentMstOrderData.Nc10.Contains("-")) { labelPreviousSmtInfo.Text = "To jest zlecenie LG, zmień zakładkę na LGIT!"; } } else { labelModelInfo.Text = "Nieprawidłowy numer zlecenia - Brak zlecenia w bazie Kitting!"; } //if (MST.MES.SqlOperations.SMT.SmtLots(new string[] { textBoxOrderNumber.Text }).Rows.Count > 0) //{ // labelModelInfo.Text = "Ten numer zlecenia nie istnieje w bazie SMT"; //} //if (lotTable.Rows.Count > 0) //{ // currentMstOrderData.OrderNumber = textBoxOrderNumber.Text; // string modelId = lotTable.Rows[0]["NC12_wyrobu"].ToString(); // currentMstOrderData.Nc10 = modelId; // currentMstOrderData.ModelName = MST.MES.SqlOperations.ConnectDB.NC12ToModelName(modelId + "00"); // DataTable modelInfoTable = MST.MES.SqlOperations.MesModels.GetMstModelInfo(modelId); // var effPerHour = EfficiencyCalculation.CalculateModelNormPerHour(modelId, smtLine); // currentMstOrderData.OrderedQty = TryParseNullableCell(lotTable.Rows[0]["Ilosc_wyrobu_zlecona"].ToString()); // currentMstOrderData.OrderNumber = textBoxOrderNumber.Text; // currentMstOrderData.PcbOnMb = TryParseNullableCell(modelInfoTable.Rows[0]["SMT_Carrier_QTY"].ToString()); // currentMstOrderData.ResQty = TryParseNullableCell(modelInfoTable.Rows[0]["Resistor_Qty"].ToString()); // currentMstOrderData.ConnQty = TryParseNullableCell(modelInfoTable.Rows[0]["Conn_Qty"].ToString()); // currentMstOrderData.LedQty = TryParseNullableCell(modelInfoTable.Rows[0]["PKG_SUM_QTY"].ToString()); // currentMstOrderData.BinQty = TryParseNullableCell(lotTable.Rows[0]["IloscKIT"].ToString()); // currentMstOrderData.NormPerHour = Math.Round(effPerHour.outputPerHour, 0); // textBoxOrderNumber.BackColor = Color.Lime; // labelModelInfo.Text += currentMstOrderData.Nc10.Insert(4, " ").Insert(8, " ") + Environment.NewLine + // currentMstOrderData.ModelName + Environment.NewLine + // "Ilość zlecona: " + currentMstOrderData.OrderedQty; // var previousSmtRecords = MST.MES.SqlDataReaderMethods.SMT.GetOneOrder(textBoxOrderNumber.Text); // if (previousSmtRecords.totalManufacturedQty > 0) // { // labelPreviousSmtInfo.Text = "Kontynuacja zlecenia." + Environment.NewLine + // $"Do tej pory wykonano: {previousSmtRecords.totalManufacturedQty} szt." + Environment.NewLine + // $"Pozostało do wykonania: {currentMstOrderData.OrderedQty - previousSmtRecords.totalManufacturedQty} szt."; // currentMstOrderData.PreviouslyManufacturedQty = previousSmtRecords.totalManufacturedQty; // } // else // { // labelPreviousSmtInfo.Text = ""; // } // if (currentMstOrderData.Nc10.Contains("-")) // { // labelPreviousSmtInfo.Text = "To jest zlecenie LG, zmień zakładkę na LGIT!"; // } //} //else //{ // labelModelInfo.Text = "Nieprawidłowy numer zlecenia - Brak zlecenia w bazie Kitting!"; //} }