public ServiceResult UpdateMaterialReject(Material_Reject pRej, Material_Reject_Form pForm = null) { try { using (var db = new AgnosDBContext()) { var current = db.Material_Reject.Where(w => w.Material_Reject_ID == pRej.Material_Reject_ID).FirstOrDefault(); if (current != null) { if (string.IsNullOrEmpty(pRej.RMR_No)) { //------------- Start Running Number-----------------// var runningNumber = db.Running_Number_Config.Where(w => w.Running_Number_Type == Running_Number_Type.RMR).FirstOrDefault(); if (runningNumber == null) { runningNumber = new Running_Number_Config() { Ref_Count = 1, Number_Of_Digit = 2, Running_Number_Type = Running_Number_Type.RMR, Create_On = currentdate, Create_By = userlogin.Email_Address, Running_Year = currentdate.Year }; } else { if (!(runningNumber.Running_Year.HasValue && runningNumber.Running_Year == currentdate.Year)) { // reset Ref_Count runningNumber.Ref_Count = 1; runningNumber.Running_Year = currentdate.Year; runningNumber.Update_On = currentdate; runningNumber.Update_By = userlogin.Email_Address; } } string RMR_No = runningNumber.Ref_Count.ToString().PadLeft(runningNumber.Number_Of_Digit.Value, '0') + "/" + currentdate.Year.ToString().Substring(2, 2); var rcri = new MaterialRejectCriteria(); rcri.RMR_No = RMR_No; bool validNo = false; while (!validNo) { var rej = new Material_Reject(); var result = GetMaterialReject(rcri); if (result.Code == ReturnCode.SUCCESS) { var rejs = result.Object as List <Material_Reject>; if (rejs.Count() == 0) { validNo = true; } else { if (runningNumber.Ref_Count == 0) { runningNumber.Ref_Count = 1; } runningNumber.Update_On = currentdate; runningNumber.Update_By = userlogin.Email_Address; runningNumber.Ref_Count++; RMR_No = runningNumber.Ref_Count.ToString().PadLeft(runningNumber.Number_Of_Digit.Value, '0') + "/" + currentdate.Year.ToString().Substring(2, 2); } } } runningNumber.Ref_Count++; pRej.RMR_No = RMR_No; if (runningNumber.Running_Number_Config_ID == 0) { db.Running_Number_Config.Add(runningNumber); } //------------- End Running Number-----------------// } if (pForm != null) { var form = db.Material_Reject_Form.Where(w => w.Material_Reject_ID == current.Material_Reject_ID).FirstOrDefault(); if (form != null) { db.Material_Reject_Form.Remove(form); } db.Material_Reject_Form.Add(pForm); } SaveProductMaping(db, pRej.Product_Code, pRej.Product_Name); pRej.Update_On = currentdate; pRej.Update_By = userlogin.Email_Address; db.Entry(current).CurrentValues.SetValues(pRej); db.SaveChanges(); } return(new ServiceResult() { Code = ReturnCode.SUCCESS, Msg = Success.GetMessage(ReturnCode.SUCCESS_UPDATE), Field = Resource.Material_Reject }); } } catch (Exception ex) { return(new ServiceResult() { Code = ReturnCode.ERROR_UPDATE, Msg = Error.GetMessage(ReturnCode.ERROR_UPDATE), Field = Resource.Material_Reject, Exception = ex }); } }
public ServiceResult GetMaterialReject(MaterialRejectCriteria cri = null) { var result = new ServiceResult(); try { using (var db = new AgnosDBContext()) { var raws = db.Material_Reject .Include(w => w.Global_Lookup_Data) .Include(w => w.Global_Lookup_Data1) .Include(w => w.User_Profile) .Include(w => w.User_Profile1) .Include(w => w.User_Profile2) .Include(w => w.User_Profile3) .Include(w => w.User_Profile4) .Include(i => i.Raw_Material) .Where(w => 1 == 1 && w.Record_Status != Record_Status.Delete); if (cri != null) { if (!string.IsNullOrEmpty(cri.Overall_Status)) { raws = raws.Where(w => w.Overall_Status == cri.Overall_Status); } if (cri.Material_Reject_ID.HasValue) { raws = raws.Where(w => w.Material_Reject_ID == cri.Material_Reject_ID); } if (cri.Raw_Material_ID.HasValue) { raws = raws.Where(w => w.Raw_Material_ID == cri.Raw_Material_ID); } if (!string.IsNullOrEmpty(cri.Product_Code)) { raws = raws.Where(w => w.Product_Code.Contains(cri.Product_Code)); } if (!string.IsNullOrEmpty(cri.Product_Name)) { raws = raws.Where(w => w.Product_Name.Contains(cri.Product_Name)); } if (!string.IsNullOrEmpty(cri.Product_Search)) { raws = raws.Where(w => w.Product_Code.Contains(cri.Product_Search) | w.Product_Name.Contains(cri.Product_Search)); } if (!string.IsNullOrEmpty(cri.Date_From)) { var date = DateUtil.ToDate(cri.Date_From); if (date.HasValue) { raws = raws.Where(w => w.Raw_Material.Receiving_Date >= date); } } if (!string.IsNullOrEmpty(cri.Date_To)) { var date = DateUtil.ToDate(cri.Date_To); if (date.HasValue) { raws = raws.Where(w => w.Raw_Material.Receiving_Date <= date); } } if (cri.Top.HasValue) { raws = raws.Take(cri.Top.Value); } else { //raws = raws.Skip(cri.Start_Index).Take(cri.Page_Size); //result.Start_Index = cri.Start_Index; //result.Page_Size = cri.Page_Size; } if (!string.IsNullOrEmpty(cri.RMR_No)) { raws = raws.Where(w => w.RMR_No.Contains(cri.RMR_No)); } } result.Object = raws.OrderByDescending(o => o.Material_Reject_ID).ToList(); result.Code = ReturnCode.SUCCESS; } } catch (Exception ex) { result.Code = ReturnCode.ERROR_DB; result.Exception = ex; } return(result); }