private void RegistorToInCal(string serialNumber) { CalInProcessRepository cipr = _context.CalInProcessRepository; CalInProcess entry = new CalInProcess(); entry.SerialNumber = serialNumber; entry.RegisteredDate = AppResources.JSTNow; cipr.AddRecord(entry); }
public ActionResult MoveToIncal([FromBody] SerialAndFlagList serial) { const double warningLevel = 0.5; const double daysInYear = 365.25; ToolInventoryRepository tir = _context.ToolInventoryRepository; MaterialNeedCalRepository mncr = _context.MaterialNeedCalRepository; CalInProcessRepository cipr = _context.CalInProcessRepository; CalDateRepository cdr = _context.CalDateRepository; List <CalStat> calstatlist = new List <CalStat>(); for (int i = 0; i < serial.SerialNums.Count; ++i) { //foreach (var num in serial.SerialNums) { CalStat stat = new CalStat(); stat.SerialNumber = serial.SerialNums[i]; calstatlist.Add(stat); if (serial.NoCheckFlags[i]) { // RegistorToInCal(stat.SerialNumber); stat.MoveToIncal = true; continue; } var cip = cipr.GetLatestRecords(ci => ci.SerialNumber == stat.SerialNumber); if (cip != null && (cip.CalDate == null || cip.VenShipDate == null)) { stat.MoveToIncal = false; stat.InInCal = true; stat.CommentToUser = "******"; continue; } var inventory = tir.GetRecord(stat.SerialNumber); var material = mncr.GetRecord(inventory.Material); int calInterval = material.CalInterval ?? 12; // calInterval is in months int calIntervalInDays = (int)(daysInYear / 12.0) * calInterval; DateTime?LatestCalDate = cdr.GetLatestCalDate(stat.SerialNumber); if (LatestCalDate != null) { int days = AppResources.JSTNow.Subtract((DateTime)LatestCalDate).Days; double percentdays = (double)days / (double)calIntervalInDays; if (percentdays < warningLevel) { stat.MoveToIncal = false; stat.CommentToUser = $"この Material {inventory.Material} の校正周期は {calInterval} ヵ月です。この Serial の 最新校正日は{LatestCalDate:d}でそこから {days} 日、校正周期の {percentdays:p1} しか経っていません。再度校正のため In-Cal に移動しますか?"; continue; } } // RegistorToInCal(stat.SerialNumber); //disabled for debugging front end (2020/10/01) stat.MoveToIncal = true; } var serializeOptions = new JsonSerializerOptions { // PropertyNamingPolicy = JsonNamingPolicy.CamelCase, PropertyNamingPolicy = null, WriteIndented = true }; return(Json(calstatlist, serializeOptions)); }
public CalInProcessesController(CsmForAsml2Context context, IHubContext <CsmHub> hubContext) { _context = context; _calInProRepo = context.CalInProcessRepository; _hubContext = hubContext; }