从山证v2.3.0拷贝
This commit is contained in:
@@ -0,0 +1,175 @@
|
||||
using BaseOUDAL;
|
||||
using YieldChain.Helpers;
|
||||
|
||||
namespace YLErp.Modules.ClientModule
|
||||
{
|
||||
/// <summary>
|
||||
/// 客户给予子公司的授信额度
|
||||
/// </summary>
|
||||
public class CreditFromClientService : YLBaseService
|
||||
{
|
||||
public CreditFromClientService(OptUserInfo userInfo) : base(userInfo)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 保存客户给予子公司的授信额度
|
||||
/// </summary>
|
||||
public CreditFromClient SaveCreditFromClient(CreditFromClient req)
|
||||
{
|
||||
if (req.CreditDeadLine < req.CreditStartDate)
|
||||
{
|
||||
throw new ServiceException("授信起始日不能大于授信到期日");
|
||||
}
|
||||
|
||||
CreditFromClient dbModel;
|
||||
var isAddNew = req.id == 0;
|
||||
var updateComments = false;
|
||||
DateTime? createDate = DateTime.Now;
|
||||
int? creatorId = UserInfo.UserId;
|
||||
var creatorName = UserInfo.UserName;
|
||||
|
||||
if (isAddNew)
|
||||
{
|
||||
dbModel = new CreditFromClient();
|
||||
DbContext.CreditFromClient.Add(dbModel);
|
||||
}
|
||||
else
|
||||
{
|
||||
dbModel = DbContext.CreditFromClient.Find(req.id);
|
||||
if (dbModel == null)
|
||||
{
|
||||
throw new ServiceException("数据不存在");
|
||||
}
|
||||
updateComments = dbModel.Credit == req.Credit
|
||||
&& dbModel.CreditDeadLine == req.CreditDeadLine
|
||||
&& dbModel.CreditStartDate == req.CreditStartDate;
|
||||
|
||||
createDate = dbModel.CreateDate;
|
||||
creatorId = dbModel.CreatorId;
|
||||
creatorName = dbModel.CreatorName;
|
||||
}
|
||||
|
||||
if (updateComments)
|
||||
{
|
||||
dbModel.Comments = req.Comments;
|
||||
DbContext.SaveChanges();
|
||||
return dbModel;
|
||||
}
|
||||
|
||||
UpdateChanges(dbModel, req);
|
||||
|
||||
SetDBModelOpt(dbModel);
|
||||
dbModel.CreatorName = creatorName;
|
||||
dbModel.CreatorId = creatorId;
|
||||
dbModel.CreateDate = createDate;
|
||||
|
||||
//设置客户编号
|
||||
var client = ClientDataQueryService.GetClient(dbModel.ClientId, true);
|
||||
dbModel.ClientNumber = client.Number;
|
||||
dbModel.ClientName = client.Name;
|
||||
|
||||
var query = from credit in DbContext.CreditFromClient
|
||||
where credit.ClientId == dbModel.ClientId && credit.id != req.id
|
||||
&& (!(req.CreditStartDate > credit.CreditDeadLine || req.CreditDeadLine < credit.CreditStartDate))
|
||||
select credit;
|
||||
|
||||
if (query.Any())
|
||||
{
|
||||
throw new ServiceException("同一客户授信有效时间不能重合,请检查该客户已存在的授信记录");
|
||||
}
|
||||
|
||||
DbContext.SaveChanges();
|
||||
|
||||
return dbModel;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取数据
|
||||
/// </summary>
|
||||
public CreditFromClient GetData(int id)
|
||||
{
|
||||
var dbModel = DbContext.CreditFromClient.AsNoTracking().FirstOrDefault(n => n.id == id);
|
||||
if (dbModel == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
var dto = new CreditFromClient();
|
||||
|
||||
ObjectHelper.MapValues(dto, dbModel);
|
||||
|
||||
var client = ClientDataQueryService.GetClient(dbModel.ClientId, true);
|
||||
dto.ClientNumber = client.Number;
|
||||
dto.ClientName = client.Name;
|
||||
|
||||
return dto;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 删除数据
|
||||
/// </summary>
|
||||
public CreditFromClient RemoveData(int id)
|
||||
{
|
||||
var dbModel = DbContext.CreditFromClient.FirstOrDefault(n => n.id == id);
|
||||
if (dbModel == null)
|
||||
{
|
||||
throw new ServiceException("找不到数据");
|
||||
}
|
||||
DbContext.CreditFromClient.Remove(dbModel);
|
||||
DbContext.SaveChanges();
|
||||
return dbModel;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 搜索数据
|
||||
/// </summary>
|
||||
public SearchListResult<CreditFromClient> SearchData(ClientCreditReq req)
|
||||
{
|
||||
if (string.IsNullOrEmpty(req.sidx))
|
||||
{
|
||||
req.sidx = "id";
|
||||
req.sord = "desc";
|
||||
}
|
||||
|
||||
var predicate = PredicateBuilder.True<CreditFromClient>();
|
||||
|
||||
if (req != null)
|
||||
{
|
||||
if (req.ClientId.HasValue && req.ClientId.Value > 0)
|
||||
{
|
||||
predicate = predicate.And(O => O.ClientId == req.ClientId.Value);
|
||||
}
|
||||
|
||||
if (req.CreditDeadLineStart > default(DateTime))
|
||||
{
|
||||
predicate = predicate.And(O => O.CreditDeadLine >= req.CreditDeadLineStart);
|
||||
}
|
||||
|
||||
if (req.CreditDeadLineEnd > default(DateTime))
|
||||
{
|
||||
predicate = predicate.And(O => O.CreditDeadLine <= req.CreditDeadLineEnd);
|
||||
}
|
||||
}
|
||||
var clientIds = new ClientDataService(OptUser).GetClientIds();
|
||||
if (clientIds.Any())
|
||||
{
|
||||
predicate = predicate.And(a => clientIds.Contains(a.ClientId));
|
||||
}
|
||||
var sList = DbContext.CreditFromClient.Where(predicate).ToSearchList(req);
|
||||
|
||||
foreach (var item in sList.rows)
|
||||
{
|
||||
var client = ClientDataQueryService.GetClient(item.ClientId);
|
||||
if (client != null)
|
||||
{
|
||||
item.ClientNumber = client.Number;
|
||||
item.ClientName = client.Name;
|
||||
}
|
||||
}
|
||||
|
||||
return sList;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user