using BaseOUDAL;
using YLErp.Model.Enum;
namespace YLErp.Modules.SalesModule
{
///
/// 销售人员信息服务
///
public class SalesmenDataService : YLBaseService
{
public SalesmenDataService(OptUserInfo userInfo) : base(userInfo)
{
}
public List GetSalesmen()
{
var query = from s in DbContext.salesmen
where s.Status == 0
select s;
return query.ToList();
}
public List GetAllSalesmen()
{
var query = from s in DbContext.salesmen
select s;
return query.ToList();
}
public List GetSalesmen(List Id)
{
var query = from s in DbContext.salesmen
where Id.Contains(s.id)
select s;
return query.ToList();
}
public Salesman GetSalesman(int Id)
{
var query = from s in DbContext.salesmen
where s.id == Id
select s;
return query.FirstOrDefault();
}
///
///
///
public List GetDepartment()
{
var query = (from s in DbContext.salesmen
where s.Status == 0
select (s.Department)).Distinct();
return query.ToList();
}
///
///
///
public SearchListResult SalesmenQuery(BaseSearchReq req, List ids, List departments)
{
var query = from s in DbContext.salesmen
select s;
if (ids != null && ids.Count() > 0)
{
query = query.Where(O => ids.Contains(O.id));
}
if (departments != null && departments.Count() > 0)
{
query = query.Where(O => departments.Contains(O.Department));
}
var ret = query.ToList();
if (string.IsNullOrEmpty(req.sidx))
{
req.sidx = "id";
req.sord = "desc";
}
var retListResult = ret.AsQueryable().ToSearchList(req);
return retListResult;
}
public bool SaveSalesman(Salesman salesman)
{
Salesman model;
CheckVaild(salesman);
if (salesman.id == 0)
{
model = new Salesman
{
Name = salesman.Name,
Department = salesman.Department,
Mail = salesman.Mail,
Telephone = salesman.Telephone,
Mobile = salesman.Mobile,
Status = salesman.Status
};
DbContext.salesmen.Add(model);
}
else
{
model = DbContext.salesmen.Find(salesman.id);
if (model == null)
{
throw new ServiceException("要更新的数据 已不存在");
}
model.Name = salesman.Name;
model.Department = salesman.Department;
model.Mail = salesman.Mail;
model.Telephone = salesman.Telephone;
model.Mobile = salesman.Mobile;
model.Status = salesman.Status;
}
DbContext.SaveChanges();
return true;
}
private void CheckVaild(Salesman salesman)
{
if (string.IsNullOrEmpty(salesman.Name))
{
throw new ServiceException("销售员姓名 必须填写");
}
if (string.IsNullOrEmpty(salesman.Department))
{
throw new ServiceException("销售员部门 必须填写");
}
}
public Salesman GetSalesmanByName(string name)
{
var query = from s in DbContext.salesmen
where s.Status == 0 && s.Name == name
select s;
return query.FirstOrDefault();
}
public IEnumerable GetSalesIdByNames(IEnumerable names)
{
if (names == null || !names.Any())
{
return Enumerable.Empty();
}
var query = from s in DbContext.salesmen
where s.Status == 0 && names.Contains(s.Name)
select new SalesmanBase
{
id = s.id,
Name = s.Name
};
if (PS.Config.ErpElement.SaleMode == YLErp.Configuration.Enums.SaleMode.CustomerManager)
{
using (var db = DbContextFactory.GetErpBaseContext())
{
query = from s in db.SystemUsers
where s.State == 0 && names.Contains(s.Name) && (s.AccountPost & (int)AccountPostEnum.客户经理) > 0
select new SalesmanBase
{
id = s.Id,
Name = s.Name
};
return query.ToArray();
}
}
return query.ToArray();
}
public IEnumerable GetSalesNamesByIds(List Ids)
{
if (Ids == null || !Ids.Any())
{
return Enumerable.Empty();
}
var query = from s in DbContext.salesmen
where s.Status == 0 && Ids.Any(a => a.Equals(s.id))
select new SalesmanBase
{
id = s.id,
Name = s.Name
};
return query.ToArray();
}
}
}