示例#1
0
        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));
        }