using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CY.IDAL.Inquiry;
using AbstractFactory;
using CY.Model;
using CY.Model.Inquiry;
namespace CY.BLL.Inquiry
{
///
/// 模切费业务逻辑类
///
public class CuttingCostBLL
{
ICuttingCostDAL _iCuttingCostDAL = null;
public CuttingCostBLL()
{
_iCuttingCostDAL = Factory.GetDALByInterfaceName(DALInterface.ICuttingCostDAL) as ICuttingCostDAL;
}
///
/// 获取模切费价格列表
///
///
///
///
public IList GetModelList(Guid inquiryId, int printingTyId, bool isByPapersize)
{
return _iCuttingCostDAL.GetModelList(inquiryId, printingTyId, isByPapersize);
}
///
/// 保存模切费价格列表
///
///
///
///
///
public bool SaveModelList(IList list, InquiryCondition inquiryCondition, int printingTyId, bool isByPapersize)
{
return _iCuttingCostDAL.SaveModelList(list,inquiryCondition, printingTyId, isByPapersize);
}
///
/// 获取模切费
///
///
///
///
///
public Inquiry_CuttingCost GetModel(int printingTyId, int pageSizeValue, Guid inquiryId)
{
IList list = GetModelList(inquiryId, printingTyId,true);
Inquiry_CuttingCost model = list.Single(p => p.ShowId == pageSizeValue) as Inquiry_CuttingCost;
return model;
}
///
/// 获取模切费价格
///
///
///
///
///
public decimal GetCuttingPrice(int printingTyId, int pageSizeValue, int printCount, Guid inquiryId)
{
decimal price = 0;
Inquiry_CuttingCost model = GetModel(printingTyId, pageSizeValue, inquiryId);
if(model!=null)
{
price = model.Price * printCount;
if (price <= model.StartPrice)
price = model.StartPrice;
price += model.PlatemakPrice;
}
return price;
}
///
/// 获取信封的模切费
///
///
///
///
///
public Inquiry_CuttingCost GetModelByEnvelope(int printingTyId, int envelopeModeTypeId, Guid inquiryId)
{
IList list = GetModelList(inquiryId, printingTyId, false);
Inquiry_CuttingCost model = list.Single(p => p.ShowId == envelopeModeTypeId) as Inquiry_CuttingCost;
return model;
}
///
/// 获取信封的模切费
///
///
///
///
///
public decimal GetCuttingPriceByEnvelope(int printingTyId, int envelopeModeTypeId, int printCount, Guid inquiryId)
{
decimal price = 0;
Inquiry_CuttingCost model = GetModelByEnvelope(printingTyId, envelopeModeTypeId, inquiryId);
if (model != null)
{
price = model.Price * printCount;
if (price <= model.StartPrice)
price = model.StartPrice;
price += model.PlatemakPrice;
}
return price;
}
}
}