public string SaveRQ(string MACHIN, string BAR_KAN, int QTY, string USER, TimeSpan TIME_ACTUAL, float PROCESS_SPEED) { try { var User = DbFile.Master_Member.Where(y => y.Mem_Name == USER || y.Code_Mem == USER).FirstOrDefault(); var CheckBar = DbFile.OTIF_TR_Process.Where(y => y.Bar_Kan == BAR_KAN).Where(z => z.Machine.Equals(MACHIN)).FirstOrDefault(); var CheckCal = DbFile.OTIF_TR_Cal.Where(y => y.Cal_Tag == BAR_KAN).Where(z => z.Cal_Machine.Equals(MACHIN)).FirstOrDefault(); // var CheckMASPL = DbFile.Master_Planner.Where(y => y.PL_Tag == BAR_KAN).Where(z => z.PL_Machine.Equals(MACHIN)).FirstOrDefault(); var CheckMASPL = DbFile.Master_Planner.Where(y => y.PL_Tag == BAR_KAN).Where(z => z.PL_Machine.Equals(MACHIN)).AsEnumerable().OrderByDescending(k => k.PL_Time).GroupBy(k => new { k.PL_Status }).Select(k => k.First()).OrderByDescending(k => k.PL_Status).FirstOrDefault(); var TR_Pro = new OTIF_TR_Process(); var TR_CAL = new OTIF_TR_Cal(); if (CheckBar != null)//Edit { CheckMASPL.PL_Status = "T"; CheckCal.Cal_QTY = QTY; CheckCal.Cal_QTY_Balance = CheckMASPL.PL_Qty_T; CheckCal.Cal_Update = DateTime.Now; CheckCal.Cal_Update_time = TIME_ACTUAL; CheckBar.Machine = MACHIN; CheckBar.QTY = QTY; CheckBar.User = User.Code_Mem; CheckBar.Date_Actual = DateTime.Now; CheckBar.Time_Actual = TIME_ACTUAL; CheckBar.Process_Speed = PROCESS_SPEED; CheckBar.Status = "T"; CheckBar.SF_Remain_Qty = null; CheckBar.TR_DateTime = DateTime.Now; DbFile.SaveChanges(); return("S"); } else //Add new { CheckMASPL.PL_Status = "T"; TR_CAL.Cal_SO = CheckMASPL.PL_SO; TR_CAL.Cal_Machine = CheckMASPL.PL_Machine; TR_CAL.Cal_Tag = CheckMASPL.PL_Tag; TR_CAL.Cal_Status = "IN"; TR_CAL.Cal_QTY = CheckMASPL.PL_Qty_T; TR_CAL.Cal_QTY_Balance = CheckMASPL.PL_Qty_T; TR_CAL.Cal_LVL = CheckMASPL.PL_Level; TR_CAL.Cal_Create = DateTime.Now; TR_CAL.Cal_Create_time = TIME_ACTUAL; TR_Pro.Machine = MACHIN; TR_Pro.Bar_Kan = BAR_KAN; TR_Pro.QTY = QTY; TR_Pro.User = User.Code_Mem; TR_Pro.Date_Actual = DateTime.Now; TR_Pro.Time_Actual = TIME_ACTUAL; TR_Pro.Status = "T"; TR_Pro.Process_Speed = PROCESS_SPEED; TR_Pro.Pro_SO = CheckMASPL.PL_SO; TR_Pro.TR_DateTime = DateTime.Now; DbFile.OTIF_TR_Cal.Add(TR_CAL); DbFile.OTIF_TR_Process.Add(TR_Pro); DbFile.SaveChanges(); return("S"); } } catch { return("N"); } }
[HttpPost] //รายงาน Shopfloor public string SaveSHF(string BAR_KAN, string MACHINE, int TRAGET, int QTY, string USER, TimeSpan TIME_ACTUAL, int REMAIN, String ACTUAL_SPEED, string STP, string STC) { try { //เพิ่มข้อมูลใหม่ไป OTIF_TR_ShopFloor ทุกกรณี var User = DbFile.Master_Member.Where(y => y.Mem_Name == USER || y.Code_Mem == USER).FirstOrDefault(); var CheckBar = DbFile.OTIF_TR_Process.Where(y => y.Bar_Kan == BAR_KAN).Where(z => z.Machine.Equals(MACHINE)).FirstOrDefault(); var CheckMASPL = DbFile.Master_Planner.Where(y => y.PL_Tag == BAR_KAN).Where(z => z.PL_Machine.Equals(MACHINE)).AsEnumerable().OrderByDescending(k => k.PL_Time).GroupBy(k => new { k.PL_Status }).Select(k => k.First()).OrderByDescending(k => k.PL_Status).FirstOrDefault(); var CheckCal = DbFile.OTIF_TR_Cal.Where(y => y.Cal_Tag == BAR_KAN).Where(z => z.Cal_Machine.Equals(MACHINE)).FirstOrDefault(); var CheckPack = DbFile.OTIF_TR_Packing.Where(y => y.Pack_Tag == BAR_KAN).Where(z => z.Pack_Machine.Equals(MACHINE)).FirstOrDefault(); var CheckMachine = DbFile.Master_Machine.Where(y => y.MC_Machine.Equals(MACHINE)).Where(z => z.MC_Process.Equals("Y")).FirstOrDefault(); var CheckMetal = DbFile.Master_Metal.Where(y => y.Metal_Material_Des.Contains(CheckMASPL.PL_Type)).FirstOrDefault(); ClassController CAL = new ClassController(); var TR_SF = new OTIF_TR_ShopFloor(); var TR_PRO = new OTIF_TR_Process(); var TR_CAL = new OTIF_TR_Cal(); var TR_Pack = new OTIF_TR_Packing(); if (CheckCal != null) //Update Data OTIF_TR_Cal { // CheckCal.Cal_QTY = QTY; CheckCal.Cal_Update = DateTime.Now; CheckCal.Cal_Update_time = TIME_ACTUAL; // CheckCal.Cal_QTY = CheckMASPL.PL_Qty_T;/////////////////////////////// CheckCal.Cal_QTY_Balance = QTY; } else //Create Data OTIF_TR_Cal { TR_CAL.Cal_SO = CheckMASPL.PL_SO; TR_CAL.Cal_Machine = CheckMASPL.PL_Machine; TR_CAL.Cal_Tag = CheckMASPL.PL_Tag; TR_CAL.Cal_Status = "OUT"; TR_CAL.Cal_QTY = CheckMASPL.PL_Qty_T; TR_CAL.Cal_QTY_Balance = QTY; TR_CAL.Cal_LVL = CheckMASPL.PL_Level; TR_CAL.Cal_Create = DateTime.Now; TR_CAL.Cal_Create_time = TIME_ACTUAL; TR_CAL.Cal_Speed = Double.Parse(ACTUAL_SPEED); DbFile.OTIF_TR_Cal.Add(TR_CAL); } if (CheckMASPL.PL_Process_Status == "Yes") //ถ้าเป็นล้อ Process สุดท้าย { if (CheckPack != null) //Update Data OTIF_TR_Packing { CheckPack.Pack_Speed = Double.Parse(ACTUAL_SPEED); CheckPack.Pack_Update = DateTime.Now; CheckPack.Pack_QC_Update = DateTime.Now; // CheckPack.Pack_QTY = CheckMASPL.PL_Qty_T;//////////////////////////// CheckPack.Pack_QTY_Balance = QTY; if (CheckMetal != null) { CheckPack.Pack_Weight = (CheckPack.Pack_QTY_Balance) * CheckMetal.Metal_Netweight_W_U; } if (STP == "T") { CheckPack.Pack_Status = "STOP"; } else { CheckPack.Pack_Status = "OUT"; } } else //Create Data OTIF_TR_Packing { TR_Pack.Pack_SO = CheckMASPL.PL_SO; TR_Pack.Pack_Machine = CheckMASPL.PL_Machine; TR_Pack.Pack_Tag = CheckMASPL.PL_Tag; TR_Pack.Pack_Status = "OUT"; TR_Pack.Pack_QTY = CheckMASPL.PL_Qty_T; TR_Pack.Pack_QTY_Balance = QTY; TR_Pack.Pack_LVL = CheckMASPL.PL_Level; TR_Pack.Pack_Create = DateTime.Now; TR_Pack.Pack_Update = DateTime.Now; TR_Pack.Pack_QC_Update = DateTime.Now; TR_Pack.Pack_Create_time = TIME_ACTUAL; TR_Pack.Pack_Speed = Double.Parse(ACTUAL_SPEED); TR_Pack.Pack_DateTime = DateTime.Now; TR_Pack.Pack_Reel_Size = CheckMASPL.PL_Reel_Size; if (CheckMetal != null) { TR_Pack.Pack_Weight = CheckMetal.Metal_Netweight_W_U; } if (CheckMachine != null) { TR_Pack.Pack_Base = "P1"; } DbFile.OTIF_TR_Packing.Add(TR_Pack); } } if (CheckBar != null) { //เงื่อนไขนี้ แก้ไขข้อมูลใน OTIF_TR_Process CheckBar.SF_Remain_Qty = REMAIN; if (CheckBar.RT_QTY == null) { CheckBar.RT_QTY = QTY; } else { CheckBar.RT_QTY = QTY; } CheckBar.Process_Speed = Double.Parse(ACTUAL_SPEED); CheckBar.Stop_Process = STP; // CheckBar.TR_DateTime = DateTime.Now; TR_SF.SF_Kanban = CheckBar.Bar_Kan; TR_SF.SF_Machine = CheckBar.Machine; } else { //เงื่อนไขนี้เพิ่มข้อมูลใหม่ ใน OTIF_TR_Process TR_PRO.Machine = MACHINE; TR_PRO.Pro_SO = CheckMASPL.PL_SO; TR_PRO.Bar_Kan = BAR_KAN; TR_SF.SF_Kanban = BAR_KAN; TR_SF.SF_Machine = MACHINE; TR_PRO.QTY = TRAGET; TR_PRO.SF_Remain_Qty = REMAIN; TR_PRO.User = User.Code_Mem; TR_PRO.Date_Actual = DateTime.Now; TR_PRO.Time_Actual = TIME_ACTUAL; TR_PRO.Status = "T"; TR_PRO.RT_QTY = QTY; TR_PRO.Stop_Process = STP; TR_PRO.Process_Speed = Double.Parse(ACTUAL_SPEED); TR_PRO.TR_DateTime = DateTime.Now; DbFile.OTIF_TR_Process.Add(TR_PRO); } CheckMASPL.PL_Status = "F"; TR_SF.SF_User = User.Code_Mem; TR_SF.SF_QTY = QTY; TR_SF.SF_Date = DateTime.Now; TR_SF.SF_Time = TIME_ACTUAL; TR_SF.SF_Actual_Speed = Double.Parse(ACTUAL_SPEED); TR_SF.SF_Stop_Process = STP; TR_SF.SF_Stop_Code = STC; DbFile.OTIF_TR_ShopFloor.Add(TR_SF); DbFile.SaveChanges(); //*/ // CAL.Calculator(CheckMASPL.PL_SO, MACHINE); return("S"); } catch { return("N"); } }