/// <summary> /// 保存表单(新增、修改) /// </summary> /// <param name="keyValue">主键值</param> /// <param name="entity">实体对象</param> /// <returns></returns> public void SaveForm(string keyValue, Sales_ContractEntity entity, List <Sales_Contract_ItemEntity> entryList) { try { service.SaveForm(keyValue, entity, entryList); } catch (Exception) { throw; } }
/// <summary> /// 保存表单(新增、修改) /// </summary> /// <param name="keyValue">主键值</param> /// <param name="entity">实体对象</param> /// <param name="entryList">明细对象</param> /// <returns></returns> public void SaveForm(string keyValue, Sales_ContractEntity entity, List <Sales_Contract_ItemEntity> entryList) { IRepository db = this.BaseRepository().BeginTrans(); try { if (!string.IsNullOrEmpty(keyValue)) { //主表 entity.Modify(keyValue); db.Update(entity); //明细 db.Delete <Sales_Contract_ItemEntity>(t => t.ContractId.Equals(keyValue)); foreach (Sales_Contract_ItemEntity item in entryList) { item.Create(); item.ContractId = entity.Id; db.Insert(item); //出库才减库存 if (entity.Status == 1) { MinusWareGoods(db, item); } } } else { //主表 entity.Create(); db.Insert(entity); //出库再操作,初始化余量主表 if (entity.Status == 1) { Sale_CustomerEntity saleCustomer = db.FindEntity <Sale_CustomerEntity>(t => t.CustomerId.Equals(entity.CustomerId)); if (saleCustomer != null) { saleCustomer.SumTotalAmount = saleCustomer.SumTotalAmount + entity.TotalAmount; saleCustomer.SumTotalCount = saleCustomer.SumTotalCount + entity.TotalCount; saleCustomer.ModifyUserId = entity.UserId; saleCustomer.ModifyUserName = entity.UserName; saleCustomer.Modify(saleCustomer.CustomerId); db.Update(saleCustomer); } else { Sale_CustomerEntity saleCustomerEntity = new Sale_CustomerEntity() { CustomerId = entity.CustomerId, CustomerCompany = entity.CustomerCompany, SumTotalAmount = entity.TotalAmount, SumTotalCount = entity.TotalCount, CreateUserId = entity.UserId, CreateUserName = entity.UserName, }; saleCustomerEntity.Create(); db.Insert(saleCustomerEntity); } } //明细 int sort = 0; foreach (Sales_Contract_ItemEntity item in entryList) { item.Sort = sort++; item.Create(); item.ContractId = entity.Id; db.Insert(item); //出库才减库存 if (entity.Status == 1) { //出库才减库存 MinusWareGoods(db, item); #region 余量信息 //出库才初始化余量子表 Sale_Customer_ItemEntity saleCustomerItem = db.FindEntity <Sale_Customer_ItemEntity>(t => t.CustomerId.Equals(entity.CustomerId) && t.ProductId.Equals(item.ProductId)); //商品已经进过一次货,在上次进货基础上累加总进货量 if (saleCustomerItem != null) { saleCustomerItem.UnitPrice = item.UnitPrice; saleCustomerItem.SumAmount = saleCustomerItem.SumAmount + item.Amount; saleCustomerItem.SumCount = saleCustomerItem.SumCount + item.Count; saleCustomerItem.Modify(saleCustomerItem.Id); db.Update(saleCustomerItem); } else { //第一次进货,新增此商品 Sale_Customer_ItemEntity saleCustomerItemEntity = new Sale_Customer_ItemEntity() { CustomerId = entity.CustomerId, ProductId = item.ProductId, ProductCode = item.ProductCode, ProductName = item.ProductName, UnitPrice = item.UnitPrice, SumAmount = item.Amount, SumCount = item.Count, Sort = item.Sort, }; saleCustomerItemEntity.Create(); db.Insert(saleCustomerItemEntity); } #endregion } } //占用单据号 coderuleService.UseRuleSeed(SystemInfo.CurrentModuleId, db); } db.Commit(); } catch (Exception ex) { db.Rollback(); throw; } }