using BaseOUDAL; namespace YLErp.Modules.ClientCashModule { /// /// /// public class ClientCashOtherService : YLBaseService { public ClientCashOtherService(OptUserInfo userInfo) : base(userInfo) { } public client_cash_other SaveClientCashOther(client_cash_other req) { client_cash_other clientCashOther; bool isAddNew = req.id == 0; if (isAddNew) { DbContext.client_cash_other.Add(clientCashOther = new client_cash_other()); } else { clientCashOther = DbContext.client_cash_other.Find(req.id); } DbContext.Entry(clientCashOther).CurrentValues.SetValues(req); if (req.Action.Contains("支出") && clientCashOther.Money > 0) { clientCashOther.Money = -clientCashOther.Money; } clientCashOther.OptId = UserId; clientCashOther.OptName = UserName; clientCashOther.OptDate = DateTime.Now; //设置关联数据 var client = DataCacheProvider.GetClientDataSource().GetData(req.ClientId ?? 0); if (client != null) { clientCashOther.ClientName = client.Name; clientCashOther.ClientNumber = client.Number; } DbContext.SaveChanges(); return clientCashOther; } public SearchListResult SearchClientCashOtherList(ClientCashOtherReq req) { var query = from source in DbContext.client_cash_other select source; if (!string.IsNullOrEmpty(req.ClientName)) { query = query.Where(x => x.ClientName.Contains(req.ClientName)); } if (!string.IsNullOrEmpty(req.ClientIds) && req.ClientIdsInt.Count()>0) { query = query.Where(d => d.ClientId != null && req.ClientIdsInt.Contains(d.ClientId.Value)); } if (req.HappenDateStart != DateTime.MinValue) { query = query.Where(d => d.HappenDate >= req.HappenDateStart); } if (req.HappenDateEnd != DateTime.MinValue) { DateTime HappenDateTemp = req.HappenDateEnd.AddDays(1); query = query.Where(d => d.HappenDate < HappenDateTemp); } if (!string.IsNullOrEmpty(req.ActionTypes)) { query = query.Where(x => req.ActionTypes.Contains(x.Action)); } if (string.IsNullOrEmpty(req.sidx)) { req.sidx = "HappenDate"; req.sord = "desc"; } SearchListResult retListResult = query.ToSearchList(req); var gsum = new client_cash_otherGridSum(); if (query.Any()) { gsum.MoneySum = query.Sum(q => q.Money); } retListResult.Sum = gsum; return retListResult; } } /// /// /// public class ClientCashOtherReq : BaseSearchReq { public int? id { get; set; } /// /// 客户ID /// public int? ClientId { get; set; } /// /// 客户编号 /// public string ClientNumber { get; set; } /// /// 客户名称 /// public string ClientName { get; set; } public string ClientIds { get; set; } public List ClientIdsInt { get { if (string.IsNullOrWhiteSpace(ClientIds)) { return new List(); } else { if (ClientIds.Substring(0, 1) == ",") { return new List(); } return ClientIds.Split(',').Select(c => Convert.ToInt32(c)).ToList(); } } } /// /// 操作类型 /// public string Action { get; set; } /// /// 操作类型复选框筛选条件 /// public string ActionTypes { get; set; } /// /// 金额 /// public double? Money { get; set; } /// /// 发生时间 /// public DateTime? HappenDate { get; set; } public DateTime HappenDateStart { get; set; } public DateTime HappenDateEnd { get; set; } /// /// 备注 /// public string Comments { get; set; } /// /// 操作人 /// public int? OptId { get; set; } /// /// 操作人 /// public string OptName { get; set; } /// /// 操作时间 /// public DateTime? OptDate { get; set; } } }