public bool UpdateDues(SupplierProductDetailUpdateModel model) { using (var scope = new TransactionScope()) { var db = Repository.Db as BusinessDbContext; AccountHead head = db.AccountHeads.First(x => x.ShopId == model.ShopId && x.Name == "Purchase"); model.Transaction.AccountHeadId = head.Id; model.Transaction.AccountHeadName = head.Name; model.Transaction.TransactionFlowType = TransactionFlowType.Expense; model.Transaction.ParentId = model.SupplierId; model.Transaction.TransactionFor = TransactionFor.Purchase; model.Transaction.TransactionWith = TransactionWith.Supplier; db.SupplierProductTransactions.AddRange(model.SupplierProductTransactions); db.Transactions.Add(model.Transaction); int changes = db.SaveChanges(); foreach (var transaction in model.SupplierProductTransactions) { var supplierProduct = db.SupplierProducts.First(x => x.Id == transaction.SupplierProductId); supplierProduct.Paid = db.SupplierProductTransactions.Where(x => x.SupplierProductId == supplierProduct.Id) .Sum(x => x.Amount); supplierProduct.Due = supplierProduct.TotalPrice - supplierProduct.Paid; db.SaveChanges(); } SupplierService supplierService = new SupplierService(new BaseRepository <Supplier>(Repository.Db)); bool updatePoint = supplierService.UpdateAmount(model.SupplierId); scope.Complete(); return(changes > 0); } }
public IHttpActionResult UpdateDues(SupplierProductDetailUpdateModel model) { var service = new SupplierProductService(new BaseRepository <SupplierProduct>(BusinessDbContext.Create())); AddCommonValues(model, model.Transaction); foreach (var entity in model.SupplierProductTransactions) { AddCommonValues(model, entity); entity.TransactionId = model.Transaction.Id; } bool updated = service.UpdateDues(model); return(Ok(updated)); }