using LeaRun.Application.Entity.CustomerManage; using LeaRun.Application.IService.CustomerManage; using LeaRun.Data.Repository; using LeaRun.Util.Extension; using LeaRun.Util.WebControl; using LeaRun.Util; using System.Collections.Generic; using System.Linq; using System; using LeaRun.Application.Service.SystemManage; using LeaRun.Application.IService.SystemManage; using LeaRun.Application.Code; namespace LeaRun.Application.Service.CustomerManage { /// /// 版 本 6.1 /// Copyright (c) 2013-2016 上海力软信息技术有限公司 /// 创 建:佘赐雄 /// 日 期:2016-03-16 13:54 /// 描 述:订单管理 /// public class OrderService : RepositoryFactory, IOrderService { private ICodeRuleService coderuleService = new CodeRuleService(); #region 获取数据 /// /// 获取列表 /// /// 分页 /// 查询参数 /// 返回分页列表 public IEnumerable GetPageList(Pagination pagination, string queryJson) { var expression = LinqExtensions.True(); var queryParam = queryJson.ToJObject(); //单据日期 if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty()) { DateTime startTime = queryParam["StartTime"].ToDate(); DateTime endTime = queryParam["EndTime"].ToDate().AddDays(1); expression = expression.And(t => t.OrderDate >= startTime && t.OrderDate <= endTime); } //单据编号 if (!queryParam["OrderCode"].IsEmpty()) { string OrderCode = queryParam["OrderCode"].ToString(); expression = expression.And(t => t.OrderCode.Contains(OrderCode)); } //客户名称 if (!queryParam["CustomerName"].IsEmpty()) { string CustomerName = queryParam["CustomerName"].ToString(); expression = expression.And(t => t.CustomerName.Contains(CustomerName)); } //销售人员 if (!queryParam["SellerName"].IsEmpty()) { string SellerName = queryParam["SellerName"].ToString(); expression = expression.And(t => t.SellerName.Contains(SellerName)); } //收款状态 if (!queryParam["PaymentState"].IsEmpty()) { int PaymentState = queryParam["PaymentState"].ToInt(); expression = expression.And(t => t.PaymentState == PaymentState); } return this.BaseRepository().FindList(expression, pagination); } /// /// 获取实体 /// /// 主键值 /// public OrderEntity GetEntity(string keyValue) { return this.BaseRepository().FindEntity(keyValue); } /// /// 获取前单、后单 数据 /// /// 主键值 /// 类型(1-前单;2-后单) /// 返回实体 public OrderEntity GetPrevOrNextEntity(string keyValue, int type) { OrderEntity entity = this.GetEntity(keyValue); if (type == 1) { entity = this.BaseRepository().IQueryable().Where(t => t.CreateDate >entity.CreateDate).OrderBy(t => t.CreateDate).FirstOrDefault(); } else if (type == 2) { entity = this.BaseRepository().IQueryable().Where(t => t.CreateDate < entity.CreateDate).OrderByDescending(t => t.CreateDate).FirstOrDefault(); } return entity; } #endregion #region 提交数据 /// /// 删除数据 /// /// 主键 public void RemoveForm(string keyValue) { IRepository db = new RepositoryFactory().BaseRepository().BeginTrans(); try { db.Delete(keyValue); db.Delete(t => t.OrderId.Equals(keyValue)); db.Commit(); } catch (Exception) { db.Rollback(); throw; } } /// /// 保存表单(新增、修改) /// /// 主键值 /// 实体对象 /// 明细实体对象 /// public void SaveForm(string keyValue, OrderEntity orderEntity, List orderEntryList) { IRepository db = new RepositoryFactory().BaseRepository().BeginTrans(); try { if (!string.IsNullOrEmpty(keyValue)) { //主表 orderEntity.Modify(keyValue); db.Update(orderEntity); //明细 db.Delete(t => t.OrderId.Equals(keyValue)); foreach (OrderEntryEntity orderEntryEntity in orderEntryList) { orderEntryEntity.OrderId = orderEntity.OrderId; db.Insert(orderEntryEntity); } } else { //主表 orderEntity.Create(); db.Insert(orderEntity); coderuleService.UseRuleSeed(orderEntity.CreateUserId, "", ((int)CodeRuleEnum.Customer_OrderCode).ToString(), db);//占用单据号 //明细 foreach (OrderEntryEntity orderEntryEntity in orderEntryList) { orderEntryEntity.Create(); orderEntryEntity.OrderId = orderEntity.OrderId; db.Insert(orderEntryEntity); } } db.Commit(); } catch (Exception) { db.Rollback(); throw; } } #endregion } }