/// <summary> /// 订单入库保存 /// </summary> public void OrderCheckIn() { try { using (ProxyBE p = new ProxyBE()) { ProductWarehouseMain pw = new ProductWarehouseMain(); pw.InID = Guid.NewGuid(); pw.BillNo = Parm.BillNo; pw.OrderID = Parm.OrderID; SaveProductWarehouseArgs args = new SaveProductWarehouseArgs(); args.ProductWarehouseMain = pw; SaveLocationArgs largs = new SaveLocationArgs(); //遍历详细页 List <ProductWarehouseDetail> listdetails = new List <ProductWarehouseDetail>(); string InDetail = Request["InDetail"]; JsonData sj = JsonMapper.ToObject(InDetail); if (sj.Count > 0) { //遍历对象元素,保存 foreach (JsonData item in sj) { ProductWarehouseDetail detail = new ProductWarehouseDetail(); detail.InID = pw.InID; detail.DetailID = Guid.NewGuid(); detail.PackageID = Guid.Parse(item["PackageID"].ToString()); detail.LocationID = Guid.Parse(item["LocationID"].ToString()); listdetails.Add(detail); args.ProductWarehouseDetails = listdetails; //2.把该仓位占用、仓位放的包数、重量累计 Location location = p.Client.GetLocation(SenderUser, detail.LocationID); location.PackageQty += 1; location.Weight += Convert.ToDecimal(item["Weight"].ToString()); location.Flag = true; largs.Location = location; p.Client.SaveLocation(SenderUser, largs); } } //1.把订单状态改为待备货 O Order order = p.Client.GetOrder(SenderUser, Parm.OrderID); order.Status = "O"; SaveOrderArgs oargs = new SaveOrderArgs(); oargs.Order = order; p.Client.SaveOrder(SenderUser, oargs); p.Client.SaveProductWarehouse(SenderUser, args); } WriteSuccess(); } catch (Exception ex) { WriteError(ex.Message, ex); } }
public void SaveProductWarehouse(Sender sender, SaveProductWarehouseArgs args) { try { using (ObjectProxy op = new ObjectProxy(true)) { ProductWarehouseMain obj = new ProductWarehouseMain(); obj.InID = args.ProductWarehouseMain.InID; if (op.LoadProductWarehouseMainByInID(obj) == 0) { args.ProductWarehouseMain.Created = DateTime.Now; args.ProductWarehouseMain.CreatedBy = sender.UserCode + "." + sender.UserName; args.ProductWarehouseMain.Modified = DateTime.Now; args.ProductWarehouseMain.ModifiedBy = sender.UserCode + "." + sender.UserName; op.InsertProductWarehouseMain(args.ProductWarehouseMain); } else { op.UpdateProductWarehouseMainByInID(args.ProductWarehouseMain); } if (args.ProductWarehouseDetails != null) { op.DeleteProductWarehouseDetailsByInID(args.ProductWarehouseMain.InID); foreach (ProductWarehouseDetail item in args.ProductWarehouseDetails) { item.Created = DateTime.Now; item.CreatedBy = sender.UserCode + "." + sender.UserName; op.InsertProductWarehouseDetail(item); } } op.CommitTransaction(); } } catch (Exception ex) { PLogger.LogError(ex); throw ex; } }