using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using AMESCoreStudio.WebApi; using AMESCoreStudio.WebApi.Models.AMES; using AMESCoreStudio.CommonTools.Result; namespace AMESCoreStudio.WebApi.Controllers.AMES { /// <summary> /// FQC檢驗結果明細資料檔 /// </summary> [Route("api/[controller]")] [ApiController] public class FqcResultDetailController : ControllerBase { private readonly AMESContext _context; public FqcResultDetailController(AMESContext context) { _context = context; } // GET: api/FqcResultDetail [HttpGet] public async Task<ActionResult<IEnumerable<FqcResultDetail>>> GetFqcResultDetails() { return await _context.FqcResultDetails.ToListAsync(); } /// <summary> /// /// </summary> /// <param name="id">FQCID</param> /// <returns></returns> [HttpGet("{id}")] public async Task<ActionResult<IEnumerable<FqcResultDetail>>> GetFqcResultDetail(int id) { var fqcResultDetail = await _context.FqcResultDetails.Where(w => w.FqcID == id).ToListAsync(); return fqcResultDetail; } /// <summary> /// 更新FQC檢驗結果明細 /// </summary> /// <param name="fqcResultDetail"></param> /// <returns></returns> [HttpPut] public async Task<ResultModel<FqcResultDetail>> PutFqcResultDetail(FqcResultDetail fqcResultDetail) { ResultModel<FqcResultDetail> result = new ResultModel<FqcResultDetail>(); _context.Entry(fqcResultDetail).State = EntityState.Modified; fqcResultDetail.UpdateDate = DateTime.Now; try { await _context.SaveChangesAsync(); result.Success = true; result.Msg = "OK"; } catch (Exception ex) { result.Success = false; result.Msg = ex.InnerException.Message; } return result; } /// <summary> /// 新增FQC檢驗結果明細 /// </summary> /// <param name="fqcResultDetail"></param> /// <returns></returns> [HttpPost] public async Task<ResultModel<FqcResultDetail>> PostFqcResultDetail(FqcResultDetail fqcResultDetail) { ResultModel<FqcResultDetail> result = new ResultModel<FqcResultDetail>(); _context.FqcResultDetails.Add(fqcResultDetail); try { await _context.SaveChangesAsync(); result.Success = true; result.Msg = "OK"; } catch (Exception ex) { result.Success = false; result.Msg = ex.InnerException.Message; } return result; } /// <summary> /// 刪除 FQC抽驗資料 /// </summary> /// <param name="id">內部條碼</param> /// <param name="inhouseNo">FQC單號</param> /// <param name="seqID">順序</param> /// <param name="boxNo">箱號</param> /// <returns></returns> [HttpDelete] [ApiExplorerSettings(IgnoreApi = true)] public async Task<ResultModel<FqcResultDetail>> DeleteFqcResultDetail(string id, string inhouseNo, int seqID, string boxNo) { ResultModel<FqcResultDetail> result = new ResultModel<FqcResultDetail>(); var fqcResultMaster = await _context.FqcResultMasters.Where(w => w.InhouseNo == inhouseNo && w.SeqID == seqID).FirstOrDefaultAsync(); if (fqcResultMaster != null) { var fqcID = fqcResultMaster.FqcID; var fqcResultDetail = await _context.FqcResultDetails.Where(w => w.FqcID == fqcID && w.BarcodeNo == id && w.BoxNo == boxNo).FirstOrDefaultAsync(); if (fqcResultDetail != null) { try { _context.FqcResultDetails.Remove(fqcResultDetail); await _context.SaveChangesAsync(); result.Success = true; result.Msg = "OK"; } catch (Exception ex) { result.Success = false; result.Msg = ex.InnerException.Message; } } } return result; } private bool FqcResultDetailExists(int id) { return _context.FqcResultDetails.Any(e => e.FqcID == id); } } }