//delete by Id public ActionResult DeleteFromVerification(int id) { if (Session["User"] == null) { return(RedirectToAction("Login", "Home")); } if (Session["Company"] == null) { return(RedirectToAction("Login", "Home")); } int palletNum = (int)Session["PalletNum"]; string msg = ""; HttpResponseMessage response = GlobalVariables.WebApiClient.DeleteAsync("LoosePicking?id=" + id).Result; //TempData["RespondMessage"] = response.Content.ReadAsStringAsync().Result; if (response.IsSuccessStatusCode) { msg = response.Content.ReadAsStringAsync().Result; //Remove from PalletSelectionModel List List <PalletSelectionModel> psms = (List <PalletSelectionModel>)Session["PalletSelectionModels"]; List <PalletSelectionModel> verifiedPsms = psms.Where(w => w.PalletNum == palletNum).ToList(); PalletSelectionModel ps = verifiedPsms.Where(w => w.Id == id).SingleOrDefault(); decimal redeemQty = ps.PalletQty; string uniqueKey = ps.UD108Key1; verifiedPsms.Remove(ps); Session["PalletSelectionModels"] = verifiedPsms; //Add back the delete Qty to the PartNum , find by UD108Key1 LoosePickingDetailModel lpd = (LoosePickingDetailModel)Session["LoosePickingDetailModel"]; if (uniqueKey == lpd.UD108Key1) { lpd.Qty = lpd.Qty + redeemQty; Session["LoosePickingDetailModel"] = lpd; } msg = "Success"; } //TempData["ResponseMessage"] = msg; //return View("Verification", verifiedPsms); return(Json(new { Message = msg }, JsonRequestBehavior.AllowGet)); }
// Checking Lot Num in Picking Process. (One of the function in ProductScanning Page) public ActionResult CheckProductScanningLotNum(string Company, string PartNum, string LotNum) { if (Session["User"] == null) { return(RedirectToAction("Login", "Home")); } if (Session["Company"] == null) { return(RedirectToAction("Login", "Home")); } string msg = "-"; decimal _Qty = 0; //LPLotNum //LPRetrieve string Qry = $"LPLotNum?Company={Company}&PartNum={PartNum}&LotNum={LotNum}"; HttpResponseMessage response = GlobalVariables.WebApiClient.GetAsync(Qry).Result; if (response.IsSuccessStatusCode) { PalletSelectionModel p = new PalletSelectionModel(); p = response.Content.ReadAsAsync <PalletSelectionModel>().Result; PalletSelectionModel pallet = (PalletSelectionModel)Session["PalletSelectionModel"]; pallet.FromWareHouse = p.FromWareHouse; // "L05"; pallet.FromBinNum = p.FromBinNum; // "RS_BTL"; pallet.ToWareHouse = p.ToWareHouse; // "L09"; pallet.ToBinNum = p.ToBinNum; // "L09"; //pallet.Qty = rmApi.Qty; pallet.LotNum = p.LotNum; _Qty = p.PalletQty; //pallet.Id = rm.Id; // Set some missing data into the Current Session Session["PalletSelectionModel"] = pallet; msg = "Valid"; //Session["RetrieveApiModel"] = rm; //return RedirectToAction("Retrieve"); return(Json(new { Message = msg, PalletQty = _Qty, Warning = p.LotCheck }, JsonRequestBehavior.AllowGet)); } else { string msgJson = response.Content.ReadAsStringAsync().Result; try { JObject jObject = JObject.Parse(msgJson); string msg_ = (string)jObject.SelectToken("Message"); string msgDtl = (string)jObject.SelectToken("MessageDetail"); if (msgDtl == null) { msg = msg_; } else { msg = msgDtl; } } catch (Exception ex) { msg = msgJson; } } return(Json(new { Message = msg }, JsonRequestBehavior.AllowGet)); }
//public ActionResult UpdateProductScanning(PalletSelectionModel obj) public ActionResult UpdateProductScanning(PalletSelectionModel obj) { if (Session["User"] == null) { return(RedirectToAction("Login", "Home")); } if (Session["Company"] == null) { return(RedirectToAction("Login", "Home")); } PalletSelectionModel sessionPallet = (PalletSelectionModel)Session["PalletSelectionModel"]; obj.FromWareHouse = sessionPallet.FromWareHouse; //"L05"; obj.FromBinNum = sessionPallet.FromBinNum; // "RS_BTL"; obj.ToWareHouse = sessionPallet.ToWareHouse; //"L09"; obj.ToBinNum = sessionPallet.ToBinNum; //"L09"; //pallet.Qty = rmApi.Qty; obj.ShipByDate = (DateTime)Session["ShipByDate"]; string errMsg = "-"; string msg = "-"; string status = ""; //Check Qty. If finish, change to LoosePickStatus to Full LoosePickingDetailModel lpd = (LoosePickingDetailModel)Session["LoosePickingDetailModel"]; decimal newLpdQty = 0; decimal qty = lpd.Qty; decimal palletQty = obj.PalletQty; newLpdQty = qty - palletQty; if (newLpdQty <= 0) { obj.LoosePickStatus = "Full"; } //JavaScriptSerializer js = new JavaScriptSerializer(); //var json = js.Serialize(obj); HttpResponseMessage response = GlobalVariables.WebApiClient.PostAsJsonAsync("LPPalletSelection", obj).Result; if (response.IsSuccessStatusCode) { //Set New Qty in LPDM Session //lpd.Qty = newLpdQty; //Session["LoosePickingDetailModel"] = lpd; //Session["LoosePickingDetailModelXQty"] = newLpdQty; lpd.Qty = newLpdQty; Session["LoosePickingDetailModel"] = lpd; msg = response.Content.ReadAsStringAsync().Result; status = "Success"; try { JObject jObject = JObject.Parse(msg); string msgJ = (string)jObject.SelectToken("Message"); string msgDtl = (string)jObject.SelectToken("MessageDetail"); if (msgDtl == null) { errMsg = msgJ; } else { errMsg = msgDtl; } } catch (Exception ex) { errMsg = msg; } } else { msg = response.Content.ReadAsStringAsync().Result; status = "Fail"; try { JObject jObject = JObject.Parse(msg); string msgJ = (string)jObject.SelectToken("Message"); string msgDtl = (string)jObject.SelectToken("MessageDetail"); if (msgDtl == null) { errMsg = msgJ; } else { errMsg = msgDtl; } } catch (Exception ex) { errMsg = msg; } } return(Json(new { Message = errMsg, Status = status }, JsonRequestBehavior.AllowGet)); }
//************PRODUCT SCANNING - PICKING PROCESS************// //Product Scanning Page for Picking Process. id = PalletNum public ActionResult ProductScanning(int id) { if (Session["User"] == null) { return(RedirectToAction("Login", "Home")); } if (Session["Company"] == null) { return(RedirectToAction("Login", "Home")); } //Testing data //List<LotNumSuggestion> lotNums = new List<LotNumSuggestion>(); //LotNumSuggestion ln = new LotNumSuggestion(); //ln.LotNum = "Lot12345"; //ln.OnHandQty = 100; //lotNums.Add(ln); //LotNumSuggestion ln2 = new LotNumSuggestion(); //ln2.LotNum = "LotZXC"; //ln2.OnHandQty = 200; //lotNums.Add(ln2); //if (lotNums != null) //{ // //Display in the modal // TempData["LotNums"] = lotNums; //} int palletNum = id; Session["PalletNum"] = palletNum; //Data from loose picking detail bring to pallet selection model for update purpose LoosePickingDetailModel lpd = (LoosePickingDetailModel)Session["LoosePickingDetailModel"]; //Set some data from LoosePickingDetailModel Object to PalletSelectionModel for update through WEB Api. Because we need to post by PalletSelectionModel Object through WEB Api /LPPalletSelection(POST) PalletSelectionModel ps = new PalletSelectionModel(); ps.Id = lpd.Id; ps.UD108Key1 = lpd.UD108Key1; ps.SysRowId = lpd.SysRowId; ps.Company = lpd.Company; ps.Plant = lpd.Plant; ps.SONum = lpd.SONum; ps.ShipByDate = lpd.ShipByDate; ps.PartNum = lpd.PartNum; ps.PartDesc = lpd.PartDesc; ps.ActQty = lpd.ActQty; ps.PrevQty = lpd.PrevLPQty; ps.PalletNum = id; // //ps.LotNum = ""; // Set after they scan the lot num and its valid. On Action: CheckProductScanningLotNum ps.PalletQty = lpd.Qty; // ps.UomCode = lpd.UomCode; //ps.FromWareHouse //ps.FromBinNum //ps.ToWareHouse //ps.ToBinNum //ps.VerifyStatus ps.Remark = lpd.Remark; ps.LoosePickStatus = lpd.LoosePickStatus; ps.UserId = lpd.UserId; ps.DPNum = lpd.DPNum; //ps.RowMod //Keep PalletSelectionModel Object into Session Session["PalletSelectionModel"] = ps; //Get Suggested Lot Num from Web API List <LotNumSuggestion> lotNums = new List <LotNumSuggestion>(); lotNums = GetSuggestionLotNum(ps.Company, ps.PartNum); if (lotNums != null) { //Display in the modal TempData["LotNums"] = lotNums; } return(View(ps)); }