public OPResult <string> SaveBillCannibalize(BillBO <BillCannibalize, BillCannibalizeDetails> bo) { using (var dbContext = new DistributionEntities()) { using (TransactionScope scope = new TransactionScope()) { try { BillHelper.SaveBill <BillCannibalize, BillCannibalizeDetails>(bo, dbContext); var storeout = BillHelper.GenerateStoreOut(bo); BillHelper.SaveBillStoreOut(storeout, dbContext); dbContext.SaveChanges(); scope.Complete(); } catch (Exception e) { return(new OPResult <string> { IsSucceed = false, Message = "保存失败,失败原因:\n" + e.Message }); } } } return(new OPResult <string> { IsSucceed = true, Message = "保存成功!", Result = bo.Bill.Code }); }
public OPResult SaveBillStoring(BillBO <BillStoring, BillStoringDetails> bo) { using (var dbContext = new DistributionEntities()) { using (TransactionScope scope = new TransactionScope()) { try { BillHelper.SaveBillStoring(bo, dbContext); dbContext.SaveChanges(); scope.Complete(); } catch (Exception e) { return(new OPResult { IsSucceed = false, Message = "保存失败,失败原因:\n" + e.Message }); } } } return(new OPResult { IsSucceed = true, Message = "保存成功!" }); }
public OPResult StoringReturnGoodReject(BillBO <BillGoodReturn, BillGoodReturnDetails> bo) { using (var dbContext = new DistributionEntities()) { dbContext.Entry(bo.Bill).State = EntityState.Modified; using (TransactionScope scope = new TransactionScope()) { try { //BillHelper.SaveBill<BillGoodReturn, BillGoodReturnDetails>(bo, dbContext); var storing = BillHelper.GenerateStoring(bo); BillHelper.SaveBillStoring(storing, dbContext); //if (bo.FundAccount != null && bo.FundAccount.AlreadyIn != 0) //{ // bo.FundAccount.RefrenceBillCode = bo.Bill.Code; // dbContext.OrganizationFundAccount.Add(bo.FundAccount); //} dbContext.SaveChanges(); scope.Complete(); } catch (Exception e) { return(new OPResult { IsSucceed = false, Message = "入库失败,失败原因:\n" + e.Message }); } } } return(new OPResult { IsSucceed = true, Message = "入库成功!" }); }
public OPResult SaveBillStoreMove(BillBO <BillStoreMove, BillStoreMoveDetails> bo) { using (var dbContext = new DistributionEntities()) { using (TransactionScope scope = new TransactionScope()) { try { BillHelper.SaveBill <BillStoreMove, BillStoreMoveDetails>(bo, dbContext); var storeout = BillHelper.GenerateStoreOut(bo); storeout.Bill.StorageID = bo.Bill.StorageIDOut; BillHelper.SaveBillStoreOut(storeout, dbContext); var storing = BillHelper.GenerateStoring(bo); storing.Bill.StorageID = bo.Bill.StorageIDIn; BillHelper.SaveBillStoring(storing, dbContext); dbContext.SaveChanges(); scope.Complete(); } catch (Exception e) { return(new OPResult { IsSucceed = false, Message = "保存失败,失败原因:\n" + e.Message }); } } } return(new OPResult { IsSucceed = true, Message = "保存成功!" }); }
/// <summary> /// 保存单据 /// </summary> public static void SaveBill <T, TDetail>(BillBO <T, TDetail> bo, DbContext dbContext, bool specifcCreateTime = false) where T : BillBase where TDetail : BillDetailBase { if (!specifcCreateTime) { bo.Bill.CreateTime = DateTime.Now; } var tcontext = dbContext.Set <T>(); if (string.IsNullOrEmpty(bo.Bill.Code)) { bo.Bill.Code = BillHelper.GenerateBillCode <T>(bo.Bill.OrganizationID, dbContext); } tcontext.Add(bo.Bill); dbContext.SaveChanges(); var dcontext = dbContext.Set <TDetail>(); foreach (var d in bo.Details) { d.BillID = bo.Bill.ID; dcontext.Add(d); } dbContext.SaveChanges(); }
/// <summary> /// 生成入库单 /// </summary> public static BillBO <BillStoring, BillStoringDetails> GenerateStoring <T, TDetail>(BillBO <T, TDetail> bo) where T : BillWithBrand, new() where TDetail : BillDetailBase { BillBO <BillStoring, BillStoringDetails> storing = new BillBO <BillStoring, BillStoringDetails>(); var bill = storing.Bill = new BillStoring(); int typeid = (int)Enum.Parse(typeof(BillTypeEnum), typeof(T).Name); bill.Remark = Enum.GetName(typeof(BillStoringTypeEnum), typeid); bill.BillType = typeid; bill.OrganizationID = bo.Bill.OrganizationID; bill.BrandID = bo.Bill.BrandID; bill.RefrenceBillCode = bo.Bill.Code; bill.CreatorID = bo.Bill.CreatorID; if (bo.Bill is IStorageID) { bill.StorageID = ((IStorageID)bo.Bill).StorageID; } storing.Details = new List <BillStoringDetails>(); foreach (var p in bo.Details) { storing.Details.Add(new BillStoringDetails { ProductID = p.ProductID, Quantity = p.Quantity }); } ; return(storing); }
/// <summary> /// 生成入库单 /// </summary> private BillBO <BillStoring, BillStoringDetails> GenerateStoring(int brandID) { BillBO <BillStoring, BillStoringDetails> bo = new BillBO <BillStoring, BillStoringDetails>(); bo.Bill = new BillStoring(); bo.Bill.Remark = "零售入库"; bo.Bill.BillType = (int)BillTypeEnum.BillRetail; bo.Bill.OrganizationID = this.Master.OrganizationID;//VMGlobal.CurrentUser.OrganizationID; bo.Bill.StorageID = this.Master.StorageID; bo.Bill.BrandID = brandID; bo.Bill.CreatorID = this.Master.CreatorID;//VMGlobal.CurrentUser.ID; List <BillStoringDetails> soDetails = new List <BillStoringDetails>(); this.TraverseGridDataItems(p => { if (p.BrandID == brandID && p.Quantity < 0) { soDetails.Add(new BillStoringDetails { ProductID = p.ProductID, Quantity = (-1) * p.Quantity }); } }); bo.Details = soDetails; return(bo); }
public override OPResult Save() { var bo = new BillBO <BillStoreMove, BillStoreMoveDetails> { Bill = this.Master, Details = this.Details }; var result = BillWebApiInvoker.Instance.SaveBill <BillStoreMove, BillStoreMoveDetails>(bo); if (result.IsSucceed) { this.Init(); } return(result); }
public TResult SaveBill <TResult, T, TDetail>(BillBO <T, TDetail> bo, string apiName = null) where TResult : OPResult, new() where T : BillBase where TDetail : BillDetailBase { bo.Bill.CreatorID = VMGlobal.CurrentUser.ID; apiName = apiName ?? typeof(T).Name; try { return(this.Invoke <TResult, BillBO <T, TDetail> >(bo, "Bill/Save" + apiName)); } catch (Exception ex) { return(new TResult { IsSucceed = false, Message = ex.Message }); } }
/// <summary> /// 保存单据 /// </summary> public static OPResult SaveBill <T, TDetail, TDbContext>(BillBO <T, TDetail> bo) where T : BillBase where TDetail : BillDetailBase where TDbContext : DbContext, new() { try { using (var dbContext = new TDbContext()) { BillHelper.SaveBill <T, TDetail>(bo, dbContext); } } catch (Exception ex) { return(new OPResult { IsSucceed = false, Message = "保存失败,失败原因:\n" + ex.Message }); } return(new OPResult { IsSucceed = true, Message = "保存成功!" }); }
public OPResult SaveBillAllocate(BillBO <BillAllocate, BillAllocateDetails> bo) { return(BillHelper.SaveBill <BillAllocate, BillAllocateDetails, DistributionEntities>(bo)); }
public OPResult SaveBill <T, TDetail>(BillBO <T, TDetail> bo, string apiName = null) where T : BillBase where TDetail : BillDetailBase { return(this.SaveBill <OPResult, T, TDetail>(bo, apiName)); }
internal static void SaveBillStoring(BillBO <BillStoring, BillStoringDetails> bo, DbContext dbContext) { BillHelper.SaveBill <BillStoring, BillStoringDetails>(bo, dbContext); dbContext.Database.ExecuteSqlCommand("exec UpdateStockWhenStoreIO {0}, {1}", bo.Bill.ID, true); }
public OPResult Storing(BillGoodReturnForSearch entity) { if (entity.StorageID == default(int)) { return(new OPResult { IsSucceed = false, Message = "由于没有对应的出库仓库, 该单无法入库." }); } var lp = VMGlobal.DistributionQuery.LinqOP; BillGoodReturn bill = lp.GetById <BillGoodReturn>(entity.ID); if (bill.Status == (int)BillGoodReturnStatusEnum.退回已入库) { return new OPResult { IsSucceed = false, Message = "该退回单据已入库" } } ; bill.Status = (int)BillGoodReturnStatusEnum.退回已入库; //decimal returnMoney = 0; //if (!OrganizationListVM.IsSelfRunShop(bill.OrganizationID)) //{ // returnMoney = bill.TotalPrice; //} var bo = new BillBO <BillGoodReturn, BillGoodReturnDetails> { Bill = bill, Details = entity.Details.Select(o => new BillGoodReturnDetails { ProductID = o.ProductID, Quantity = o.Quantity }).ToList(), }; //if (returnMoney != 0) //{ // bo.FundAccount = // new OrganizationFundAccount // { // BrandID = bill.BrandID, // OrganizationID = bill.OrganizationID, // NeedIn = 0, // AlreadyIn = returnMoney, // CreatorID = VMGlobal.CurrentUser.ID, // BillKind = (int)BillTypeEnum.BillGoodReturn, // Remark = "退货入库生成,退货单号" + bill.Code, // RefrenceBillCode = bill.Code // }; //} var result = BillWebApiInvoker.Instance.Invoke <OPResult, BillBO <BillGoodReturn, BillGoodReturnDetails> >(bo, "Bill/StoringReturnGoodReject"); if (result.IsSucceed) { ObservableCollection <BillGoodReturnForSearch> entities = this.Entities as ObservableCollection <BillGoodReturnForSearch>; if (entities != null) { entities.Remove(entity); } } return(result); } }