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 AdhesiveFastCostDAL : IAdhesiveFastCostDAL { Database _dataBase = null; public AdhesiveFastCostDAL() { _dataBase = new Database(); } /// /// 获取不干胶的设置信息 /// /// /// public IList GetModelList(Guid inquiryId) { string selectTarget = @" a.Area,a.Shape,CoveredTypeId,c.ParameterName as CoveredTypeName, ( SELECT MAX(b.Price) FROM Inquiry_AdhesiveFastCost b WHERE b.Area=a.Area and b.Shape=a.Shape AND b.CoveredTypeId=a.CoveredTypeId AND b.PrintCount=500 and b.FirmId='{0}' ) AS Price500, ( SELECT MAX(b.Price) FROM Inquiry_AdhesiveFastCost b WHERE b.Area=a.Area and b.Shape=a.Shape AND b.CoveredTypeId=a.CoveredTypeId AND b.PrintCount=1000 and b.FirmId='{0}' ) AS Price1000, ( SELECT MAX(b.Price) FROM Inquiry_AdhesiveFastCost b WHERE b.Area=a.Area and b.Shape=a.Shape AND b.CoveredTypeId=a.CoveredTypeId AND b.PrintCount=2000 and b.FirmId='{0}' ) AS Price2000, ( SELECT MAX(b.Price) FROM Inquiry_AdhesiveFastCost b WHERE b.Area=a.Area and b.Shape=a.Shape AND b.CoveredTypeId=a.CoveredTypeId AND b.PrintCount=3000 and b.FirmId='{0}' ) AS Price3000, ( SELECT MAX(b.Price) FROM Inquiry_AdhesiveFastCost b WHERE b.Area=a.Area and b.Shape=a.Shape AND b.CoveredTypeId=a.CoveredTypeId AND b.PrintCount=5000 and b.FirmId='{0}' ) AS Price5000, ( SELECT MAX(b.Price) FROM Inquiry_AdhesiveFastCost b WHERE b.Area=a.Area and b.Shape=a.Shape AND b.CoveredTypeId=a.CoveredTypeId AND b.PrintCount=10000 and b.FirmId='{0}' ) AS Price10000, ( SELECT MAX(b.Price) FROM Inquiry_AdhesiveFastCost b WHERE b.Area=a.Area and b.Shape=a.Shape AND b.CoveredTypeId=a.CoveredTypeId AND b.PrintCount=20000 and b.FirmId='{0}' ) AS Price20000, ( SELECT MAX(b.Price) FROM Inquiry_AdhesiveFastCost b WHERE b.Area=a.Area and b.Shape=a.Shape AND b.CoveredTypeId=a.CoveredTypeId AND b.PrintCount=30000 and b.FirmId='{0}' ) AS Price30000, ( SELECT MAX(b.Price) FROM Inquiry_AdhesiveFastCost b WHERE b.Area=a.Area and b.Shape=a.Shape AND b.CoveredTypeId=a.CoveredTypeId AND b.PrintCount=50000 and b.FirmId='{0}' ) AS Price50000 "; selectTarget = string.Format(selectTarget, inquiryId.ToString()); string fromSouce = " Inquiry_AdhesiveFastCost a left join SysInquiry_AfterParameterInfo c on a.CoveredTypeId = c.KeyId "; string condition = " a.FirmId='" + inquiryId.ToString() + "' GROUP BY a.Area,a.Shape,a.CoveredTypeId,c.ParameterName order by max(a.keyId),CoveredTypeId"; 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_AdhesiveFastCost 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_AdhesiveFastCost trueModel = model as Model.Inquiry_AdhesiveFastCost; if (trueModel == null) { return false; } SqlParameter[] parameters = { new SqlParameter("@FirmId", SqlDbType.UniqueIdentifier,16), new SqlParameter("@Area", SqlDbType.VarChar,20), new SqlParameter("@CoveredTypeId", 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), new SqlParameter("@Shape", SqlDbType.VarChar,50), }; parameters[0].Value = trueModel.FirmId; parameters[1].Value = trueModel.Area; parameters[2].Value = trueModel.CoveredTypeId; parameters[3].Value = trueModel.PrintCount; parameters[4].Value = trueModel.Price; parameters[5].Value = trueModel.Operater; parameters[6].Value = trueModel.LastUpdateTime; parameters[7].Value = trueModel.Shape; try { _dataBase.Query("Inquiry_AdhesiveFastCost_Update", CommandType.StoredProcedure, parameters); } catch (Exception ex) { throw ex; } return true; } /// /// 删除不干胶快速询价 /// /// /// public bool DeleteModel(Infrastructure.Domain.IAggregateRoot model) { throw new NotImplementedException(); } /// /// 根据条件获取不干胶实体 /// /// /// /// /// /// /// public Inquiry_AdhesiveFastCost GetModel(string area, string shape, int coveredTypeId,int printCount,Guid inquiryId) { Inquiry_AdhesiveFastCost model=null; string condition = string.Empty; condition = " Area='" + area + "' and Shape='" + shape + "' and CoveredTypeId=" + coveredTypeId + " and PrintCount=" + printCount + " and FirmId='" + inquiryId.ToString() + "' "; IList list = _dataBase.SelectModel("*", "Inquiry_AdhesiveFastCost",condition); if (list != null && list.Count > 0) { model = list[0]; } return model; } } }