/// <summary> /// 新增入库产品保存 /// </summary> public void SaveWareHouseIn() { try { using (ProxyBE p = new ProxyBE()) { WarehouseInMain ware = new WarehouseInMain(); ware.InID = Parm.InID; ware.BillNo = Parm.BillNo; ware.BattchNo = Parm.BattchNo; ware.CheckInDate = Parm.CheckInDate; ware.HandlerMan = Parm.HandlerMan; ware.SupplierID = Parm.SupplierID; ware.Remark = Parm.Remark; SaveWarehouseInMainArgs args = new SaveWarehouseInMainArgs(); args.WarehouseInMain = ware; //遍历详细页 List <WarehouseInDetail> listdetails = new List <WarehouseInDetail>(); string WarehouseInDetail = Request["WarehouseInDetail"]; JsonData sj = JsonMapper.ToObject(WarehouseInDetail); if (sj.Count > 0) { //遍历对象元素,保存 foreach (JsonData item in sj) { WarehouseInDetail detail = new WarehouseInDetail(); detail.InID = ware.InID; 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()); detail.Price = Decimal.Parse(item["Price"].ToString()); listdetails.Add(detail); } } args.WarehouseInDetails = listdetails; p.Client.SaveWarehouseInMain(SenderUser, args); } WriteSuccess(); } catch (Exception ex) { WriteError(ex.Message, ex); } }
public WarehouseInMain GetWarehouseInMain(Sender sender, Guid InID) { try { using (ObjectProxy op = new ObjectProxy()) { WarehouseInMain obj = new WarehouseInMain(); obj.InID = InID; if (op.LoadWarehouseInMainByInID(obj) == 0) { return(null); } return(obj); } } catch (Exception ex) { PLogger.LogError(ex); throw ex; } }
public void SaveWarehouseInMain(Sender sender, SaveWarehouseInMainArgs args) { try { using (ObjectProxy op = new ObjectProxy(true)) { WarehouseInMain obj = new WarehouseInMain(); obj.InID = args.WarehouseInMain.InID; if (op.LoadWarehouseInMainByInID(obj) == 0) { args.WarehouseInMain.Created = DateTime.Now; args.WarehouseInMain.CreatedBy = string.Format("{0}.{1}", sender.UserCode, sender.UserName); args.WarehouseInMain.Modified = DateTime.Now; args.WarehouseInMain.ModifiedBy = string.Format("{0}.{1}", sender.UserCode, sender.UserName); op.InsertWarehouseInMain(args.WarehouseInMain); } else { args.WarehouseInMain.Modified = DateTime.Now; args.WarehouseInMain.ModifiedBy = string.Format("{0}.{1}", sender.UserCode, sender.UserName); op.UpdateWarehouseInMainByInID(args.WarehouseInMain); } if (args.WarehouseInDetails != null) { //入库数量 foreach (WarehouseInDetail item in args.WarehouseInDetails) { WarehouseInDetail subObj = new WarehouseInDetail(); subObj.DetailID = item.DetailID; if (op.LoadWarehouseInDetailByDetailID(subObj) == 0) { op.InsertWarehouseInDetail(item); } else { op.UpdateWarehouseInDetailByDetailID(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 = item.Price; op.InsertWarehouse(wh); } else { wh.Price = (wh.Qty * wh.Price + item.Qty * item.Price) / (wh.Qty + item.Qty); //求平均值 wh.Qty += item.Qty; op.UpdateWarehouseByMaterialID_LocationID(wh); } } } op.CommitTransaction(); } } catch (Exception ex) { PLogger.LogError(ex); throw ex; } }