private void MQCChart_Load(object sender, EventArgs e)
        {
            SettingTimeFromDateTodate();
            LoadDataERPMQCToShow();
            LiveChartDrawing liveChartDrawing = new LiveChartDrawing();

            liveChartDrawing.DrawingLiveChart(MQC.TargetMQC, chartdatabyDates, chartdatadefect, ref columnChart);
            List <chartdataPie> listChartDataPies = GetchartdataPies(MQC);

            liveChartDrawing.DrawingPiechart(listChartDataPies, ref pieChartDefect);
            //   liveChartDrawing.DrawingGaugeChart(listChartDataPies, ref GaugeChartTarget);
            SettingTimerForBrwoker();

            lb_tittlechart.Text  = "Defect Reason (" + MQC.TotalNG.ToString() + " pcs )";
            lb_clock.Text        = DateTime.Now.ToString("dd-MMM-yyyy HH:mm:ss");
            lb_LotValue.Text     = MQC.PO;
            lb_ProductValue.Text = MQC.product;
        }
 void bg_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
 {
     if (chartdatabyDates_old.Count != chartdatabyDates.Count || chartdatadefect_old.Count != chartdatadefect.Count)
     {
         LiveChartDrawing liveChartDrawing = new LiveChartDrawing();
         liveChartDrawing.DrawingLiveChart(MQC.TargetMQC, chartdatabyDates, chartdatadefect, ref columnChart);
         chartdatabyDates_old = chartdatabyDates;
         chartdatadefect_old  = chartdatadefect;
         List <chartdataPie> listChartDataPies = GetchartdataPies(MQC);
         liveChartDrawing.DrawingPiechart(listChartDataPies, ref pieChartDefect);
     }
     if (countRefresh == 0)
     {
         LiveChartDrawing liveChartDrawing = new LiveChartDrawing();
         liveChartDrawing.DrawingLiveChart(MQC.TargetMQC, chartdatabyDates, chartdatadefect, ref columnChart);
         chartdatabyDates_old = chartdatabyDates;
         chartdatadefect_old  = chartdatadefect;
         countRefresh         = Properties.Settings.Default.intCounterRefresh;
         List <chartdataPie> listChartDataPies = GetchartdataPies(MQC);
         liveChartDrawing.DrawingPiechart(listChartDataPies, ref pieChartDefect);
     }
     lb_tittlechart.Text = "Defect Reason (" + MQC.TotalNG.ToString() + " pcs )";
     lb_clock.Text       = DateTime.Now.ToString("dd-MMM-yyyy HH:mm:ss");
 }
        private void DrawingMQCSummary(string byPreriodTime)
        {
            DateTime from = new DateTime(dtpk_fromDate.Value.Year, dtpk_fromDate.Value.Month, dtpk_fromDate.Value.Day,
                                         tpk_from.Value.Hour, tpk_from.Value.Minute, tpk_from.Value.Second);
            DateTime to = new DateTime(dtpk_ToDate.Value.Year, dtpk_ToDate.Value.Month, dtpk_ToDate.Value.Day,
                                       tpk_to.Value.Hour, tpk_to.Value.Minute, tpk_to.Value.Second);

            if (byPreriodTime == "Date")
            {
                LoadDataSummary dataSummary = new LoadDataSummary();

                listMQCSummary = dataSummary.GetMQCSummary(from, to, "B01", "MQC");
                LiveChartDrawing liveChartDrawing = new LiveChartDrawing();
                liveChartDrawing.DrawingLiveChartDataSummary(listMQCSummary, ref ProductionLine);
                dtgv_data.DataSource = listMQCSummary;
            }
            else if (byPreriodTime == "Week")
            {
                LoadDataSummary dataSummary = new LoadDataSummary();
                listMQCSummary = dataSummary.GetMQCSummarybyWeek(from, to, "B01", "MQC");
                var ListMQCbyProduct = listMQCSummary
                                       .OrderBy(d => int.Parse(d.Time_from))
                                       .GroupBy(u => u.Time_from)
                                       .Select(grp => grp.ToList())
                                       .ToList();
                listMQCSummary = new List <MQCItemSummary>();
                foreach (var ItemGroup in ListMQCbyProduct)
                {
                    MQCItemSummary itemSummary = new MQCItemSummary();
                    itemSummary.OutputQty     = ItemGroup.Select(d => d.OutputQty).Sum();
                    itemSummary.NGQty         = ItemGroup.Select(d => d.NGQty).Sum();
                    itemSummary.ReworkQty     = ItemGroup.Select(d => d.ReworkQty).Sum();
                    itemSummary.QuantityTotal = itemSummary.OutputQty + itemSummary.NGQty /*+ itemSummary.ReworkQty*/;
                    itemSummary.OutputRate    = (itemSummary.QuantityTotal != 0) ? (itemSummary.OutputQty / itemSummary.QuantityTotal) : 0;
                    itemSummary.DefectRate    = (itemSummary.QuantityTotal != 0) ? (itemSummary.NGQty / itemSummary.QuantityTotal) : 0;
                    itemSummary.ReworkRate    = (itemSummary.QuantityTotal != 0) ? (itemSummary.ReworkQty / itemSummary.QuantityTotal) : 0;
                    itemSummary.Time_from     = "Week: " + ItemGroup[0].Time_from;

                    listMQCSummary.Add(itemSummary);
                }
                LiveChartDrawing liveChartDrawing = new LiveChartDrawing();
                liveChartDrawing.DrawingLiveChartDataSummary(listMQCSummary, ref ProductionLine);
                dtgv_data.DataSource = listMQCSummary;
            }
            else if (byPreriodTime == "Month")
            {
                LoadDataSummary dataSummary = new LoadDataSummary();
                listMQCSummary = dataSummary.GetMQCSummarybyMonth(from, to, "B01", "MQC");
                var ListMQCbyProduct = listMQCSummary
                                       .GroupBy(u => u.Time_from)
                                       .Select(grp => grp.ToList())
                                       .ToList();
                listMQCSummary = new List <MQCItemSummary>();
                foreach (var ItemGroup in ListMQCbyProduct)
                {
                    MQCItemSummary itemSummary = new MQCItemSummary();
                    itemSummary.OutputQty     = ItemGroup.Select(d => d.OutputQty).Sum();
                    itemSummary.NGQty         = ItemGroup.Select(d => d.NGQty).Sum();
                    itemSummary.ReworkQty     = ItemGroup.Select(d => d.ReworkQty).Sum();
                    itemSummary.QuantityTotal = itemSummary.OutputQty + itemSummary.NGQty /*+ itemSummary.ReworkQty*/;
                    itemSummary.OutputRate    = (itemSummary.QuantityTotal != 0) ? (itemSummary.OutputQty / itemSummary.QuantityTotal) : 0;
                    itemSummary.DefectRate    = (itemSummary.QuantityTotal != 0) ? (itemSummary.NGQty / itemSummary.QuantityTotal) : 0;
                    itemSummary.ReworkRate    = (itemSummary.QuantityTotal != 0) ? (itemSummary.ReworkQty / itemSummary.QuantityTotal) : 0;
                    itemSummary.Time_from     = ItemGroup[0].Time_from;

                    listMQCSummary.Add(itemSummary);
                }
                LiveChartDrawing liveChartDrawing = new LiveChartDrawing();
                liveChartDrawing.DrawingLiveChartDataSummary(listMQCSummary, ref ProductionLine);
                dtgv_data.DataSource = listMQCSummary;
            }
            else if (byPreriodTime == "Year")
            {
                LoadDataSummary dataSummary = new LoadDataSummary();
                listMQCSummary = dataSummary.GetMQCSummarybyYear(from, to, "B01", "MQC");
                var ListMQCbyProduct = listMQCSummary
                                       .GroupBy(u => u.Time_from)
                                       .Select(grp => grp.ToList())
                                       .ToList();
                listMQCSummary = new List <MQCItemSummary>();
                foreach (var ItemGroup in ListMQCbyProduct)
                {
                    MQCItemSummary itemSummary = new MQCItemSummary();
                    itemSummary.OutputQty     = ItemGroup.Select(d => d.OutputQty).Sum();
                    itemSummary.NGQty         = ItemGroup.Select(d => d.NGQty).Sum();
                    itemSummary.ReworkQty     = ItemGroup.Select(d => d.ReworkQty).Sum();
                    itemSummary.QuantityTotal = itemSummary.OutputQty + itemSummary.NGQty /*+ itemSummary.ReworkQty*/;
                    itemSummary.OutputRate    = (itemSummary.QuantityTotal != 0) ? (itemSummary.OutputQty / itemSummary.QuantityTotal) : 0;
                    itemSummary.DefectRate    = (itemSummary.QuantityTotal != 0) ? (itemSummary.NGQty / itemSummary.QuantityTotal) : 0;
                    itemSummary.ReworkRate    = (itemSummary.QuantityTotal != 0) ? (itemSummary.ReworkQty / itemSummary.QuantityTotal) : 0;
                    itemSummary.Time_from     = ItemGroup[0].Time_from;

                    listMQCSummary.Add(itemSummary);
                }
                LiveChartDrawing liveChartDrawing = new LiveChartDrawing();
                liveChartDrawing.DrawingLiveChartDataSummary(listMQCSummary, ref ProductionLine);
                dtgv_data.DataSource = listMQCSummary;
            }
        }