using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CY.IDAL.Inquiry;
using AbstractFactory;
using CY.Model;
using CY.Infrastructure.Query;
using CY.Model.Inquiry;
namespace CY.BLL.Inquiry
{
///
/// 纸张相关业务类
///
public class PaperInfoBLL
{
IPaperInfoDAL _iPaperInfoDAL = null;
public PaperInfoBLL()
{
_iPaperInfoDAL = Factory.GetDALByInterfaceName(DALInterface.IPaperInfoDAL) as IPaperInfoDAL;
}
///
/// 分页获取纸张列表
///
/// 品牌名称
/// 分页参数
///
public IEnumerable GetPaperListByPaging(string paperName, int paperTypeId,string status, Pagination pa)
{
IEnumerable paperList = _iPaperInfoDAL.GetPaperListByPaging(paperName,paperTypeId,status,pa);
IList tempList = new List();
SysInquiry_PaperInfo model = null;
foreach (SysInquiry_PaperInfo paperModel in paperList)
{
tempList.Add(GetPaperModel(paperModel.PapeId));
}
return tempList;
}
///
/// 根据paperId获取纸张信息
///
///
///
public SysInquiry_PaperInfo GetPaperModel(int paperId)
{
IList paperList = _iPaperInfoDAL.GetPaperList(paperId).OrderBy(p=>p.GramWeight).ToList();
SysInquiry_PaperInfo model = new SysInquiry_PaperInfo();
if (paperList != null && paperList.Count() > 0)
{
model.PapeId = paperList[0].PapeId;
model.PaperName = paperList[0].PaperName;
model.Status = paperList[0].Status;
model.DefaultBrandId = paperList[0].DefaultBrandId;
model.DefaultBrandName = paperList[0].DefaultBrandName;
model.PaperTypeId = paperList[0].PaperTypeId;
model.PaperTypeName = paperList[0].PaperTypeName;
model.OrderNum = paperList[0].OrderNum;
model.GramWeights = string.Empty;
foreach (SysInquiry_PaperInfo paperModel in paperList)
{
model.GramWeights += paperModel.GramWeight.ToString() + "|";
}
if (!string.IsNullOrEmpty(model.GramWeights))
{
model.GramWeights = model.GramWeights.Substring(0, model.GramWeights.Length - 1);
}
}
return model;
}
///
/// 获取最新排序顺序
///
///
public int GetOrderNumByMax(int paperTypeId)
{
return _iPaperInfoDAL.GetOrderNumByMax(paperTypeId);
}
///
/// 根据paperId获取其对应的品牌列表
///
///
///
public IEnumerable GetBrandInfoListByPaper(int paperId)
{
return _iPaperInfoDAL.GetBrandInfoListByPaper(paperId);
}
///
/// 判断是否有相同的纸扎名称
///
///
///
public bool IsExistspeperName(string peperName)
{
return _iPaperInfoDAL.IsExistspeperName(peperName);
}
///
/// 获取最新的纸张编号
///
///
public int GetNewPaperId()
{
return _iPaperInfoDAL.GetNewPaperId();
}
///
/// 新增纸张
///
///
///
public bool InsertPaper(IList modelList,IList brandList)
{
return _iPaperInfoDAL.InsertPaper(modelList, brandList);
}
///
/// 修改纸张
///
///
///
public bool UpdatePaper(IList modelList,IList brandList)
{
return _iPaperInfoDAL.UpdatePaper(modelList, brandList);
}
///
/// 获取有效的纸张列表
///
///
public IEnumerable GetPaperList()
{
IEnumerable paperList=_iPaperInfoDAL.GetPaperList();
IList tempList = new List();
SysInquiry_PaperInfo model = null;
foreach (SysInquiry_PaperInfo paperModel in paperList)
{
model = new SysInquiry_PaperInfo();
model.PapeId = paperModel.PapeId;
model.PaperName = paperModel.PaperName;
if (!IsExistInPaperInfoList(tempList,model.PapeId))
tempList.Add(model);
}
return tempList;
}
///
/// 获取所有有效的纸张包括克重
///
///
public IEnumerable GetAllPaperList()
{
IEnumerable paperList = _iPaperInfoDAL.GetAllPaperList();
IList tempList = new List();
SysInquiry_PaperInfo model = null;
foreach (SysInquiry_PaperInfo paperModel in paperList)
{
model = GetPaperModel(paperModel.PapeId);
if (!IsExistInPaperInfoList(tempList, model.PapeId))
tempList.Add(GetPaperModel(paperModel.PapeId));
}
return tempList;
}
///
/// 根据PaperId获取所有克重
///
///
///
public List GetPaperListBygramWeight(int paperId)
{
IEnumerable paperList = _iPaperInfoDAL.GetPaperList();
List gramWeightList = paperList.Where(p => p.PapeId == paperId).ToList();
return gramWeightList;
}
private bool IsExistInPaperInfoList(IList tempList, int papeId)
{
IList result = tempList.Where(p => p.PapeId == papeId).ToList();
return (result != null && result.Count > 0) ? true : false;
}
///
/// 获取纸张所有信息包含价格
///
///
public IEnumerable GetAllPaperPriceList(int paperId, int brandId, Guid inquiryId)
{
return _iPaperInfoDAL.GetAllPaperPriceList(paperId, brandId, inquiryId);
}
///
/// 获取纸张的默认品牌ID
///
///
///
public int GetDefaultBrandByPaperId(int paperId)
{
SysInquiry_PaperInfo model = GetPaperModel(paperId);
return model.DefaultBrandId.Value;
}
///
/// 根据纸张Id和品牌ID保存纸价
///
///
///
public bool SavePaperPrice(List modelList, InquiryCondition inquiryCondition)
{
return _iPaperInfoDAL.SavePaperPrice(modelList,inquiryCondition);
}
///
/// 获取纸张的吨价
///
///
///
///
///
///
public decimal GetTonsOfPrice(int paperId, int gramWeight, int brandId, Guid inquiryId)
{
return _iPaperInfoDAL.GetTonsOfPrice(paperId, gramWeight, brandId, inquiryId);
}
///
/// 获取纸张的品牌列表,第一个是默认品牌
///
///
///
public IList GetBrandInfoByPaper(int paperId)
{
return _iPaperInfoDAL.GetBrandInfoByPaper(paperId);
}
///
/// 获取纸张类型下的所有有效纸张
///
///
///
public IEnumerable GetPaperListByPaperType(int paperTypeId)
{
return _iPaperInfoDAL.GetPaperListByPaperType(paperTypeId);
}
}
}