diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/OutfitInfoesController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/OutfitInfoesController.cs
index 46f942bb..8f27f002 100644
--- a/AMESCoreStudio.WebApi/Controllers/AMES/OutfitInfoesController.cs
+++ b/AMESCoreStudio.WebApi/Controllers/AMES/OutfitInfoesController.cs
@@ -259,6 +259,112 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
}
+ ///
+ /// 治具使用次數計數
+ ///
+ /// 治具編號
+ /// 料號
+ ///
+ [HttpPut("PutForUseTime")]
+ public async Task> PutOutfitInfoForUseTim(string OutfitNO, string ItemNo)
+ {
+ //YIRU add 2023-04-13
+ ResultModel result = new ResultModel();
+ #region 判斷這個治具可否使用於這個料號
+ //先查詢item id
+ var q_item = await _context.MaterialItems.Where(w => w.ItemNo == ItemNo).FirstOrDefaultAsync();
+ if (q_item == null)
+ {
+ result.Success = false;
+ result.Msg = "查無料號";
+ return result;
+ }
+ var q_item1 = await _context.MaterialOutfits.Where(w => w.ItemID == q_item.ItemID && w.OutfitNo == OutfitNO).FirstOrDefaultAsync();
+ if (q_item1 == null)
+ {
+ result.Success = false;
+ result.Msg = "治具不可使用於此料號";
+ return result;
+ }
+
+ #endregion
+ #region 判斷這個治具是否為可使用狀態
+ var q = await _context.OutfitInfoes.Where(w => w.OutfitNo == OutfitNO).FirstOrDefaultAsync();
+ if (q == null)
+ {
+ result.Success = false;
+ result.Msg = "查無治具";
+ return result;
+ }
+ if (q.StatusNo != "A")
+ {
+
+ result.Success = false;
+ result.Msg = "治具狀態不可使用";
+ return result;
+ }
+
+ if (q.UseStatusNo != "N" && q.UseStatusNo != "R")
+ {
+ // 使用狀態(新設備 = N ; 報廢 = C; 領用 = B; 維修 = S; 歸還 = R)
+ result.Msg = q.UseStatusNo switch
+ {
+ "C" => "治具狀態為報廢不可使用",
+ "B" => "治具狀態為領用中不可使用",
+ "S" => "治具狀態為維修中不可使用",
+ _ => "治具狀態為不可使用",
+ };
+
+ result.Success = false;
+ return result;
+ }
+ #endregion
+ #region 判斷這個治具是否已超過可用次數
+ var q1 = await _context.OutfitVarityInfoes.Where(w => w.VarityID == q.VarietyID).FirstOrDefaultAsync();
+
+ if (q.UseTimes >= q1.UseLimitTimes)
+ {
+ result.Success = false;
+ result.Msg = "治具使用次數已超出";
+ return result;
+ }
+ if (q.TotalTimes >= q1.UseLimitTimes)
+ {
+ result.Success = false;
+ result.Msg = "治具累計使用次數已超出";
+ return result;
+ }
+
+
+ #endregion
+ #region 治具次數以及累計使用次數累加
+ q.TotalTimes = q.TotalTimes + 1;
+ q.UseTimes = q.UseTimes + 1;
+ q.UpdateDate = System.DateTime.Now;
+
+ #endregion
+
+ _context.Entry(q).State = EntityState.Modified;
+
+ try
+ {
+ await _context.SaveChangesAsync();
+ }
+ catch (Exception ex)
+ {
+
+ result.Success = false;
+ result.Msg = ex.Message;
+ return result;
+
+ }
+
+ result.Success = true;
+ result.Msg = "OK";
+ return result;
+ }
+
+
private bool OutfitInfoExists(int id)
{
return _context.OutfitInfoes.Any(e => e.OutfitID == id);
diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/SerialRulesController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/SerialRulesController.cs
index a8c500d9..0319c043 100644
--- a/AMESCoreStudio.WebApi/Controllers/AMES/SerialRulesController.cs
+++ b/AMESCoreStudio.WebApi/Controllers/AMES/SerialRulesController.cs
@@ -670,19 +670,25 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
serialRuleDetail_NEW.LotNum = int.Parse(lotNo);
}
- var q_detail_tmp = q_Detail.Where(w => w.ItemNo == itemNo && w.YNum == serialRuleDetail_NEW.YNum && w.MNum == serialRuleDetail_NEW.MNum && w.WNum == serialRuleDetail_NEW.WNum && w.LotNum == serialRuleDetail_NEW.LotNum).ToList();
+
+ q_Detail = _context.SerialRuleDetails;
+
+ var q_detail_tmp = q_Detail.Where(w => w.ItemNo == itemNo && w.Rule == serialRuleDetail_NEW.Rule && w.YNum == serialRuleDetail_NEW.YNum && w.MNum == serialRuleDetail_NEW.MNum && w.WNum == serialRuleDetail_NEW.WNum && w.LotNum == serialRuleDetail_NEW.LotNum).ToList();
if (q_detail_tmp.Count == 0)
{
SerialRuleDetailsController serialRuleDetailsController = new SerialRuleDetailsController(_context);
await serialRuleDetailsController.PostSerialRuleDetail(serialRuleDetail_NEW);
}
+
+
q_Detail = _context.SerialRuleDetails;
- var SerialRuleDetail = q_Detail.Where(w => w.ItemNo == itemNo && w.YNum == serialRuleDetail_NEW.YNum && w.MNum == serialRuleDetail_NEW.MNum && w.WNum == serialRuleDetail_NEW.WNum && w.LotNum == serialRuleDetail_NEW.LotNum).FirstOrDefault();
+
+ var SerialRuleDetail = q_Detail.Where(w => w.ItemNo == itemNo && w.Rule == serialRuleDetail_NEW.Rule && w.YNum == serialRuleDetail_NEW.YNum && w.MNum == serialRuleDetail_NEW.MNum && w.WNum == serialRuleDetail_NEW.WNum && w.LotNum == serialRuleDetail_NEW.LotNum).FirstOrDefault();
SerialRuleDetail.UpdateDate = System.DateTime.Now;
-
+ //取相同Rule 年、月、周 的所有料號
var SerialRuleDetail_All = q_Detail.Where(w => w.Rule == serialRuleDetail_NEW.Rule && w.YNum == serialRuleDetail_NEW.YNum && w.MNum == serialRuleDetail_NEW.MNum && w.WNum == serialRuleDetail_NEW.WNum && w.LotNum == serialRuleDetail_NEW.LotNum);
if (! itemNo.StartsWith("OTHER"))
@@ -848,7 +854,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
if (string.IsNullOrWhiteSpace(serial))
{
result.Success = false;
- result.Msg = "該筆料號設定出貨序號規則有錯誤,請在確認!";
+ result.Msg = "該筆料號設定出貨序號規則有錯誤,請再確認!";
return result;
}
}
@@ -873,7 +879,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
}
}
- #endregion
+ #endregion
#endregion