/// <summary> /// 新增出库产品保存 /// </summary> public void SaveWareHouseOut() { try { using (ProxyBE p = new ProxyBE()) { WarehouseOutMain ware = new WarehouseOutMain(); ware.OutID = Parm.OutID; ware.BillNo = Parm.BillNo; ware.CheckOutDate = Parm.CheckOutDate; ware.HandlerMan = Parm.HandlerMan; ware.WorkShopID = Parm.WorkShopID; ware.Remark = Parm.Remark; SaveWarehouseOutMainArgs args = new SaveWarehouseOutMainArgs(); args.WarehouseOutMain = ware; //遍历详细页 List <WarehouseOutDetail> listdetails = new List <WarehouseOutDetail>(); string WarehouseOutDetail = Request["WarehouseOutDetail"]; JsonData sj = JsonMapper.ToObject(WarehouseOutDetail); if (sj.Count > 0) { //遍历对象元素,保存 foreach (JsonData item in sj) { WarehouseOutDetail detail = new WarehouseOutDetail(); detail.OutID = ware.OutID; detail.DetailID = Guid.NewGuid(); detail.MaterialID = Guid.Parse(item["MaterialID"].ToString()); detail.LocationID = Guid.Parse(item["LocationID"].ToString()); detail.Qty = int.Parse(item["Qty"].ToString()); listdetails.Add(detail); } } args.WarehouseOutDetails = listdetails; p.Client.SaveWarehouseOutMain(SenderUser, args); } WriteSuccess(); } catch (Exception ex) { WriteError(ex.Message, ex); } }
public WarehouseOutMain GetWarehouseOutMain(Sender sender, Guid OutID) { try { using (ObjectProxy op = new ObjectProxy()) { WarehouseOutMain obj = new WarehouseOutMain(); obj.OutID = OutID; if (op.LoadWarehouseOutMainByOutID(obj) == 0) { return(null); } return(obj); } } catch (Exception ex) { PLogger.LogError(ex); throw ex; } }
public void SaveWarehouseOutMain(Sender sender, SaveWarehouseOutMainArgs args) { try { using (ObjectProxy op = new ObjectProxy(true)) { WarehouseOutMain obj = new WarehouseOutMain(); obj.OutID = args.WarehouseOutMain.OutID; if (op.LoadWarehouseOutMainByOutID(obj) == 0) { args.WarehouseOutMain.Created = DateTime.Now; args.WarehouseOutMain.CreatedBy = string.Format("{0}.{1}", sender.UserCode, sender.UserName); args.WarehouseOutMain.Modified = DateTime.Now; args.WarehouseOutMain.ModifiedBy = string.Format("{0}.{1}", sender.UserCode, sender.UserName); op.InsertWarehouseOutMain(args.WarehouseOutMain); } else { args.WarehouseOutMain.Modified = DateTime.Now; args.WarehouseOutMain.ModifiedBy = string.Format("{0}.{1}", sender.UserCode, sender.UserName); op.UpdateWarehouseOutMainByOutID(args.WarehouseOutMain); } if (args.WarehouseOutDetails != null) { //出库数量 foreach (WarehouseOutDetail item in args.WarehouseOutDetails) { WarehouseOutDetail subObj = new WarehouseOutDetail(); subObj.DetailID = item.DetailID; if (op.LoadWarehouseOutDetailByDetailID(subObj) == 0) { op.InsertWarehouseOutDetail(item); } else { op.UpdateWarehouseOutDetailByDetailID(item); } //出库 Warehouse wh = new Warehouse(); wh.MaterialID = item.MaterialID; wh.LocationID = item.LocationID; if (op.LoadWarehouseByMaterialID_LocationID(wh) == 0) { wh = new Warehouse(); wh.MaterialID = item.MaterialID; wh.LocationID = item.LocationID; wh.Qty = -item.Qty; wh.Price = 0; op.InsertWarehouse(wh); } else { wh.Qty -= item.Qty; //如果为0,则删除 if (wh.Qty == 0) { op.DeleteWarehouseByMaterialID_LocationID(item.MaterialID, item.LocationID); } else { op.UpdateWarehouseByMaterialID_LocationID(wh); } } } } op.CommitTransaction(); } } catch (Exception ex) { PLogger.LogError(ex); throw ex; } }