예제 #1
0
        public void ExportReportProduction()
        {
            string startTime = ""; string Startdate = ""; string endTime = ""; string endDate = ""; string lot = ""; string fileRead = "";
            var    ishaveFile = iSHaveFileDone(ref startTime, ref Startdate, ref endTime, ref endDate, ref lot, ref fileRead);

            if (ishaveFile)
            {
                try
                {
                    Thread.Sleep(10000);
                    DateTime StartDate = DateTime.Parse(Startdate).Date;
                    DateTime EndDate   = DateTime.Parse(endDate).Date;

                    TimeSpan timeStart = TimeSpan.Parse(startTime);
                    TimeSpan timeEnd   = TimeSpan.Parse(endTime);

                    DefectRateData   defectRateData   = new DefectRateData();
                    DefectRateReport defectRateReport = new DefectRateReport();
                    defectRateData = defectRateReport.GetDefectRateReportByLot(StartDate, timeStart, EndDate, timeEnd, "B01", "0010", lot);
                    if (defectRateData.TotalQuantity > 0)
                    {
                        Log.ExportExcelTool exportExcel = new Log.ExportExcelTool();
                        checkFolderSaveProduction(true);
                        exportExcel.ExportToTemplateMQCDefectTop16(MQCForm, pathSaveProduction + DateTime.Now.ToString("yyyy-MM-dd") + "\\" + "MQC_" + lot + "" + "-" + DateTime.Now.ToString("yyyyMMdd hhmmss") + ".xlsx", defectRateData);
                    }

                    if (File.Exists(fileRead))
                    {
                        File.Move(fileRead, PathDoneMoving + new FileInfo(fileRead).Name);
                    }
                }
                catch (Exception ex)
                {
                    Logfile.Output(StatusLog.Normal, "ExportReportProduction()", ex.Message);
                    if (File.Exists(fileRead))
                    {
                        //   string temp = PathErrorFiles + new FileInfo(fileRead).Name;
                        File.Move(fileRead, PathErrorFiles + new FileInfo(fileRead).Name);
                    }
                }
            }
        }
예제 #2
0
 public bool ExportReportProductionWeekly()
 {
     try
     {
         DefectRateReport defectRateReport = new DefectRateReport();
         DateTime         date_from        = Class.DateTimeControl.StartOfWeek(DayOfWeek.Monday);
         DateTime         date_to          = DateTime.Today.AddDays(-(int)DateTime.Today.DayOfWeek + 7);
         DefectRateData   defectRateData   = new DefectRateData();
         defectRateData = defectRateReport.GetDefectRateReportAmountOfTime(date_from, date_to, "B01", "0010");
         if (defectRateData.TotalQuantity == 0)
         {
             return(false);
         }
         Log.ExportExcelTool exportExcel = new Log.ExportExcelTool();
         exportExcel.ExportToTemplateMQCDefectAmountOfTime(date_from, date_to, pathMonth, @"C:\ERP_Temp\MQC_Weekly_Report" + "-" + DateTime.Now.ToString("yyyyMMdd hhmmss") + ".xlsx", defectRateData);
         return(true);
     }
     catch (Exception ex)
     {
         Logfile.Output(StatusLog.Error, "ExportReportProductionDaiLy()", ex.Message);
         return(false);
     }
 }
예제 #3
0
 public bool ExportReportProductionMonthly()
 {
     try
     {
         DefectRateReport defectRateReport = new DefectRateReport();
         DateTime         date_from        = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
         DateTime         date_to          = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month));
         DefectRateData   defectRateData   = new DefectRateData();
         defectRateData = defectRateReport.GetDefectRateReportAmountOfTime(date_from, date_to, "B01", "0010");
         if (defectRateData.TotalQuantity == 0)
         {
             return(false);
         }
         Log.ExportExcelTool exportExcel = new Log.ExportExcelTool();
         exportExcel.ExportToTemplateMQCDefectAmountOfTime(date_from, date_to, pathMonth, @"C:\ERP_Temp\MQC_Monthly_Report" + "-" + DateTime.Now.ToString("yyyyMMdd hhmmss") + ".xlsx", defectRateData);
         return(true);
     }
     catch (Exception ex)
     {
         Logfile.Output(StatusLog.Error, "ExportReportProductionDaiLy()", ex.Message);
         return(false);
     }
 }
예제 #4
0
        public DefectRateData GetDefectRateReportAmountOfTime(DateTime from, DateTime to, string Dept, string codeProcess)
        {
            DefectRateData defectRate = new DefectRateData();

            try
            {
                //code lay tren ERP va SFT
                //     StringBuilder sql = new StringBuilder();
                //     sql.Append("select sum(TA011) as outputQty, sum(TA012) as DefectQTy, sum(TA011)+ sum(TA012) as TotalQty ");
                //     sql.Append("from SFCTA ");
                //     sql.Append("where 1=1 ");
                //     sql.Append("and TA004 = '" + Dept + "'");
                //     sql.Append("and TA003 = '" + codeProcess + "'");
                //     sql.Append("and CREATE_DATE >= '" + from.ToString("yyyyMMdd") + "'");
                //     sql.Append("and CREATE_DATE <= '" + to.ToString("yyyyMMdd") + "'");
                //     sqlERPCON sqlERPCON = new sqlERPCON();
                //     DataTable dt = new DataTable();
                //     sqlERPCON.sqlDataAdapterFillDatatable(sql.ToString(), ref dt);

                //var     defectItems = (from DataRow dr in dt.Rows
                //                        select new DefectRateData()
                //                        {
                //                           TotalQuantity  =double.Parse( dr["TotalQty"].ToString()),
                //                            DefectQuantity = double.Parse( dr["DefectQTy"].ToString()),
                //                            OutputQuantity = double.Parse(dr["outputQty"].ToString())

                //                        }).ToList();

                //     defectRate = defectItems[0];
                //     defectRate.DateTime_from = from;
                //     defectRate.DateTime_to = to;
                //     defectRate.DefectRate = (defectRate.TotalQuantity != 0) ? (defectRate.DefectQuantity / defectRate.TotalQuantity) : 0;


                LoadDataSummary loadData = new LoadDataSummary();
                MQCItemSummary  mQCItems = loadData.GetMQCItemSummaryByAmountOfTime(from, to, Dept, "MQC");
                defectRate.TotalQuantity  = mQCItems.QuantityTotal;
                defectRate.DefectQuantity = mQCItems.NGQty;
                defectRate.OutputQuantity = mQCItems.OutputQty;
                defectRate.DefectRate     = (defectRate.TotalQuantity != 0) ? (defectRate.DefectQuantity / defectRate.TotalQuantity) : 0;
                LoadDefectMapping     loadDefectTop5 = new LoadDefectMapping();
                List <NGItemsMapping> listTop5       = loadDefectTop5.listNGMappingGetReport(Dept, "MQC");
                List <DefectItem>     listDefectTop5 = new List <DefectItem>();
                for (int i = 0; i < listTop5.Count; i++)
                {
                    var getlist = mQCItems.defectItems.Where(d => d.DefectSFT == listTop5[i].NGCode_SFT).ToList();

                    DefectItem defect = new DefectItem();
                    if (getlist != null && getlist.Count > 0)
                    {
                        defect          = getlist[0];
                        defect.Quantity = getlist.Select(s => s.Quantity).Sum();
                    }
                    defect.Note = listTop5[i].Note;
                    listDefectTop5.Add(defect);
                }
                var listDefectTop5Groupby = listDefectTop5.OrderBy(d => d.Note).ToList();
                defectRate.defectItems = listDefectTop5Groupby;
            }
            catch (Exception ex)
            {
                Log.Logfile.Output(Log.StatusLog.Error, "GetDefectRateReport(DateTime from, DateTime to, string Dept, string codeProcess)", ex.Message);
            }
            return(defectRate);
        }
예제 #5
0
        public List <DefectRateData> GetListDefectRateReportAmountOfTimeDaily(string Dept, string codeProcess, PeriodProduction period)
        {
            List <DefectRateData> defectRates = new List <DefectRateData>();

            try
            {
                //code lay tren ERP va SFT
                //     StringBuilder sql = new StringBuilder();
                //     sql.Append("select sum(TA011) as outputQty, sum(TA012) as DefectQTy, sum(TA011)+ sum(TA012) as TotalQty ");
                //     sql.Append("from SFCTA ");
                //     sql.Append("where 1=1 ");
                //     sql.Append("and TA004 = '" + Dept + "'");
                //     sql.Append("and TA003 = '" + codeProcess + "'");
                //     sql.Append("and CREATE_DATE >= '" + from.ToString("yyyyMMdd") + "'");
                //     sql.Append("and CREATE_DATE <= '" + to.ToString("yyyyMMdd") + "'");
                //     sqlERPCON sqlERPCON = new sqlERPCON();
                //     DataTable dt = new DataTable();
                //     sqlERPCON.sqlDataAdapterFillDatatable(sql.ToString(), ref dt);

                //var     defectItems = (from DataRow dr in dt.Rows
                //                        select new DefectRateData()
                //                        {
                //                           TotalQuantity  =double.Parse( dr["TotalQty"].ToString()),
                //                            DefectQuantity = double.Parse( dr["DefectQTy"].ToString()),
                //                            OutputQuantity = double.Parse(dr["outputQty"].ToString())

                //                        }).ToList();

                //     defectRate = defectItems[0];
                //     defectRate.DateTime_from = from;
                //     defectRate.DateTime_to = to;
                //     defectRate.DefectRate = (defectRate.TotalQuantity != 0) ? (defectRate.DefectQuantity / defectRate.TotalQuantity) : 0;


                LoadDataSummary       loadData     = new LoadDataSummary();
                List <MQCItemSummary> ListmQCItems = loadData.GetMQCItemSummaries(period, Dept, "MQC");
                foreach (var mQCItems in ListmQCItems)
                {
                    DefectRateData defectRate = new DefectRateData();
                    defectRate.Lot            = mQCItems.Lot;
                    defectRate.Product        = mQCItems.product;
                    defectRate.DateTime_from  = mQCItems.Time_from;
                    defectRate.DateTime_to    = mQCItems.Time_To;
                    defectRate.TotalQuantity  = mQCItems.QuantityTotal;
                    defectRate.DefectQuantity = mQCItems.NGQty;
                    defectRate.OutputQuantity = mQCItems.OutputQty;
                    defectRate.DefectRate     = (defectRate.TotalQuantity != 0) ? (defectRate.DefectQuantity / defectRate.TotalQuantity) : 0;
                    LoadDefectMapping     loadDefectTop13 = new LoadDefectMapping();
                    List <NGItemsMapping> listTop13       = loadDefectTop13.listNGMappingGetReportTop13(Dept, "MQC");
                    List <DefectItem>     listDefectTop13 = new List <DefectItem>();
                    for (int i = 0; i < listTop13.Count; i++)
                    {
                        var getlist = mQCItems.defectItems.Where(d => d.DefectSFT == listTop13[i].NGCode_SFT).ToList();

                        DefectItem defect = new DefectItem();
                        if (getlist != null && getlist.Count > 0)
                        {
                            defect          = getlist[0];
                            defect.Quantity = getlist.Select(s => s.Quantity).Sum();
                        }
                        defect.Note = listTop13[i].Note;
                        listDefectTop13.Add(defect);
                    }
                    var listDefectTop13Groupby = listDefectTop13.OrderBy(d => d.Note).ToList();
                    defectRate.defectItems = listDefectTop13Groupby;
                    DateTime dateTarget = DateTime.Now.Date;
                    if (period == PeriodProduction.AllDay)
                    {
                        dateTarget = DateTime.Now.Date.AddDays(-1);
                    }
                    else if (period == PeriodProduction.dayshift)
                    {
                        dateTarget = DateTime.Now.Date;
                    }
                    else if (period == PeriodProduction.nightshift)
                    {
                        dateTarget = DateTime.Now.Date.AddDays(-1);
                    }
                    defectRate.TargetMQC = new TargetMQC();
                    LoadTargetProduction loadTarget = new LoadTargetProduction();
                    defectRate.TargetMQC = loadTarget.GetTargetMQC(defectRate.Product, dateTarget.ToString("yyyyMMdd"));
                    defectRates.Add(defectRate);
                }
            }
            catch (Exception ex)
            {
                Log.Logfile.Output(Log.StatusLog.Error, "GetDefectRateReport(DateTime from, DateTime to, string Dept, string codeProcess)", ex.Message);
            }
            return(defectRates);
        }