using System; using System.Collections.Generic; using System.Linq; using System.Text; using CY.IDAL.Inquiry; using CY.Infrastructure.Common; using System.Transactions; using CY.Model; using System.Data.SqlClient; using System.Data; using CY.Model.Inquiry; namespace CY.SQLDAL { /// /// 便签快速询价操作接口--SQL实现 /// public class NoteFastCostDAL : INoteFastCostDAL { Database _dataBase = null; public NoteFastCostDAL() { _dataBase = new Database(); } /// /// 获取便签的设置信息 /// /// /// public IList GetModelList(Guid inquiryId) { string selectTarget = @" a.PaperName,a.PaperSizeId,PrintColorId,c.Name as PaperSizeName,d.TypeNmae as PrintColorName, ( SELECT MAX(b.Price) FROM Inquiry_NoteFastCost b WHERE b.PaperName=a.PaperName and b.PaperSizeId=a.PaperSizeId AND b.PrintColorId=a.PrintColorId AND b.PintCount=100 and b.FirmId='{0}' ) AS Price100, ( SELECT MAX(b.Price) FROM Inquiry_NoteFastCost b WHERE b.PaperName=a.PaperName and b.PaperSizeId=a.PaperSizeId AND b.PrintColorId=a.PrintColorId AND b.PintCount=200 and b.FirmId='{0}' ) AS Price200, ( SELECT MAX(b.Price) FROM Inquiry_NoteFastCost b WHERE b.PaperName=a.PaperName and b.PaperSizeId=a.PaperSizeId AND b.PrintColorId=a.PrintColorId AND b.PintCount=300 and b.FirmId='{0}' ) AS Price300, ( SELECT MAX(b.Price) FROM Inquiry_NoteFastCost b WHERE b.PaperName=a.PaperName and b.PaperSizeId=a.PaperSizeId AND b.PrintColorId=a.PrintColorId AND b.PintCount=500 and b.FirmId='{0}' ) AS Price500, ( SELECT MAX(b.Price) FROM Inquiry_NoteFastCost b WHERE b.PaperName=a.PaperName and b.PaperSizeId=a.PaperSizeId AND b.PrintColorId=a.PrintColorId AND b.PintCount=1000 and b.FirmId='{0}' ) AS Price1000 "; selectTarget = string.Format(selectTarget, inquiryId.ToString()); string fromSouce = " Inquiry_NoteFastCost a left join SysInquiry_PaperSizeDetail c on a.PaperSizeId=c.KeyId left join SysInquiry_MultipleTypeInfo d on a.PrintColorId = d.KeyId "; string condition = " a.FirmId='" + inquiryId.ToString() + "' GROUP BY a.PaperName, a.PaperSizeId,a.PrintColorId,c.Name ,d.TypeNmae"; IList result = _dataBase.SelectModel(selectTarget, fromSouce, condition); return result; } /// /// 保存便签快速询价 /// /// /// /// public bool SaveModelList(IList list, InquiryCondition inquiryCondition) { bool isSuccess = true; using (TransactionScope scope = new TransactionScope()) { //执行复制全部询价参数数据 if (inquiryCondition.IsFirstSave()) { new CommonInquiryHelper(_dataBase).CopyALLInquiryParameter(inquiryCondition); } foreach (Inquiry_NoteFastCost model in list) { isSuccess = UpdateModel(model); if (!isSuccess) break; } if (isSuccess) scope.Complete(); } return isSuccess; } /// /// 新增便签快速询价 /// /// /// public bool InserModel(Infrastructure.Domain.IAggregateRoot model) { return true; } /// /// 更新便签快速询价 /// /// /// public bool UpdateModel(Infrastructure.Domain.IAggregateRoot model) { Model.Inquiry_NoteFastCost trueModel = model as Model.Inquiry_NoteFastCost; if (trueModel == null) { return false; } SqlParameter[] parameters = { new SqlParameter("@FirmId", SqlDbType.UniqueIdentifier,16), new SqlParameter("@PaperName", SqlDbType.VarChar,20), new SqlParameter("@PaperSizeId", SqlDbType.Int,4), new SqlParameter("@PrintColorId", SqlDbType.Int,4), new SqlParameter("@PrintCount", SqlDbType.Int,4), new SqlParameter("@Price", SqlDbType.Money,8), new SqlParameter("@Operater", SqlDbType.VarChar,20), new SqlParameter("@LastUpdateTime", SqlDbType.DateTime) }; parameters[0].Value = trueModel.FirmId; parameters[1].Value = trueModel.PaperName; parameters[2].Value = trueModel.PaperSizeId; parameters[3].Value = trueModel.PrintColorId; parameters[4].Value = trueModel.PintCount; parameters[5].Value = trueModel.Price; parameters[6].Value = trueModel.Operater; parameters[7].Value = trueModel.LastUpdateTime; try { _dataBase.Query("Inquiry_NoteFastCost_Update", CommandType.StoredProcedure, parameters); } catch (Exception ex) { throw ex; } return true; } /// /// 删除便签快速询价 /// /// /// public bool DeleteModel(Infrastructure.Domain.IAggregateRoot model) { throw new NotImplementedException(); } /// /// 获取便签快速询价价格 /// /// /// /// /// /// /// public decimal GetNoteFastPaperPrice(string paperName, int paperSizeId, string printColor, int printCount, Guid inquiryId) { int printColorId=0; if (printColor == "单色") { printColorId = 36; } else { printColorId= 37; } string selectTarget = " Price "; string fromSouce = " Inquiry_NoteFastCost "; string condition = " FirmId='" + inquiryId.ToString() + "' and PaperName='" + paperName + "' and PaperSizeId='" + paperSizeId + "' and PrintColorId='" + printColorId + "' and PintCount=" + printCount; IList result = _dataBase.SelectModel(selectTarget, fromSouce, condition); if (result != null && result.Count > 0) { return result[0].Price; } else { return 0; } } } }