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);
        }
Esempio n. 2
0
        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;
                }
            }
        }
Esempio n. 3
0
        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");
            }
        }
Esempio n. 4
0
        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);
            }
        }
Esempio n. 5
0
        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;
                    }
                }
            }
        }
Esempio n. 6
0
 public FinishMstOrder(ref CurrentMstOrder currentOrder, string smtLine)
 {
     InitializeComponent();
     this.currentOrder = currentOrder;
     this.smtLine      = smtLine;
 }