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; }
}
}