using System; using System.Collections.Generic; using System.Linq; using System.Text; using CY.IDAL.Inquiry; using System.Transactions; using CY.Model; using System.Data.SqlClient; using System.Data; namespace CY.SQLDAL { public class ColorCostDAL : IColorCostDAL { private Database _dataBase = null; public ColorCostDAL() { _dataBase = new Database(); } public IList GetModelList(Guid inquiryId, int printingTyId) { string selectTarget = @" a.ColorName, ( SELECT MAX(b.Price) FROM Inquiry_ColorCost b WHERE b.ColorName=a.ColorName AND b.sizeValue=64 and b.FirmId='{0}' and b.PrintTypeId='{1}' ) AS Price64, ( SELECT MAX(b.Price) FROM Inquiry_ColorCost b WHERE b.ColorName=a.ColorName AND b.sizeValue=48 and b.FirmId='{0}' and b.PrintTypeId='{1}' ) AS Price48, ( SELECT MAX(b.Price) FROM Inquiry_ColorCost b WHERE b.ColorName=a.ColorName AND b.sizeValue=32 and b.FirmId='{0}' and b.PrintTypeId='{1}' ) AS Price32, ( SELECT MAX(b.Price) FROM Inquiry_ColorCost b WHERE b.ColorName=a.ColorName AND b.sizeValue=16 and b.FirmId='{0}' and b.PrintTypeId='{1}' ) AS Price16, ( SELECT MAX(b.Price) FROM Inquiry_ColorCost b WHERE b.ColorName=a.ColorName AND b.sizeValue=8 and b.FirmId='{0}' and b.PrintTypeId='{1}' ) AS Price8 "; selectTarget = string.Format(selectTarget, inquiryId.ToString(),printingTyId); string fromSouce = " Inquiry_ColorCost a "; string condition = " a.FirmId='" + inquiryId.ToString() + "' and a.PrintTypeId=" + printingTyId+" GROUP BY a.ColorName"; IList result = _dataBase.SelectModel(selectTarget, fromSouce, condition); return result; } public IList GetModelListByCup(Guid inquiryId, int printingTyId) { string selectTarget = @" a.ColorName, ( SELECT MAX(b.Price) FROM Inquiry_ColorCost b WHERE b.ColorName=a.ColorName AND b.sizeValue=8 and b.FirmId='{0}' and b.PrintTypeId='{1}' ) AS Price8, ( SELECT MAX(b.Price) FROM Inquiry_ColorCost b WHERE b.ColorName=a.ColorName AND b.sizeValue=9 and b.FirmId='{0}' and b.PrintTypeId='{1}' ) AS Price9, ( SELECT MAX(b.Price) FROM Inquiry_ColorCost b WHERE b.ColorName=a.ColorName AND b.sizeValue=10 and b.FirmId='{0}' and b.PrintTypeId='{1}' ) AS Price10, ( SELECT MAX(b.Price) FROM Inquiry_ColorCost b WHERE b.ColorName=a.ColorName AND b.sizeValue=11 and b.FirmId='{0}' and b.PrintTypeId='{1}' ) AS Price11, ( SELECT MAX(b.Price) FROM Inquiry_ColorCost b WHERE b.ColorName=a.ColorName AND b.sizeValue=12 and b.FirmId='{0}' and b.PrintTypeId='{1}' ) AS Price12, ( SELECT MAX(b.Price) FROM Inquiry_ColorCost b WHERE b.ColorName=a.ColorName AND b.sizeValue=13 and b.FirmId='{0}' and b.PrintTypeId='{1}' ) AS Price13, ( SELECT MAX(b.Price) FROM Inquiry_ColorCost b WHERE b.ColorName=a.ColorName AND b.sizeValue=14 and b.FirmId='{0}' and b.PrintTypeId='{1}' ) AS Price14, ( SELECT MAX(b.Price) FROM Inquiry_ColorCost b WHERE b.ColorName=a.ColorName AND b.sizeValue=15 and b.FirmId='{0}' and b.PrintTypeId='{1}' ) AS Price15 "; selectTarget = string.Format(selectTarget, inquiryId.ToString(),printingTyId); string fromSouce = " Inquiry_ColorCost a "; string condition = " a.FirmId='" + inquiryId.ToString() + "' and a.PrintTypeId=" + printingTyId + " GROUP BY a.ColorName"; IList result = _dataBase.SelectModel(selectTarget, fromSouce, condition); return result; } public bool SaveModelList(IList list, Model.Inquiry.InquiryCondition inquiryCondition, int printingTyId) { bool isSuccess = true; using (TransactionScope scope = new TransactionScope()) { //执行复制全部询价参数数据 if (inquiryCondition.IsFirstSave()) { new CommonInquiryHelper(_dataBase).CopyALLInquiryParameter(inquiryCondition); } foreach (Inquiry_ColorCost model in list) { isSuccess = UpdateModel(model); if (!isSuccess) break; } if (isSuccess) scope.Complete(); } return isSuccess; } public bool InserModel(Infrastructure.Domain.IAggregateRoot model) { throw new NotImplementedException(); } public bool UpdateModel(Infrastructure.Domain.IAggregateRoot model) { Model.Inquiry_ColorCost trueModel = model as Model.Inquiry_ColorCost; if (trueModel == null) { return false; } SqlParameter[] parameters = { new SqlParameter("@FirmId", SqlDbType.UniqueIdentifier,16), new SqlParameter("@ColorName", SqlDbType.VarChar,20), new SqlParameter("@SizeValue", SqlDbType.Int,4), new SqlParameter("@Price", SqlDbType.Money,8), new SqlParameter("@Operater", SqlDbType.VarChar,20), new SqlParameter("@LastUpdateTime", SqlDbType.DateTime), new SqlParameter("@PrintTypeId", SqlDbType.Int,4) }; parameters[0].Value = trueModel.FirmId; parameters[1].Value = trueModel.ColorName; parameters[2].Value = trueModel.SizeValue; parameters[3].Value = trueModel.Price; parameters[4].Value = trueModel.Operater; parameters[5].Value = trueModel.LastUpdateTime; parameters[6].Value = trueModel.PrintTypeId; try { _dataBase.Query("Inquiry_ColorCost_Update", CommandType.StoredProcedure, parameters); } catch (Exception ex) { throw ex; } return true; } public bool DeleteModel(Infrastructure.Domain.IAggregateRoot model) { throw new NotImplementedException(); } public Inquiry_ColorCost GetModel(Guid inquiryId, int printingTyId, string colorName, int sizeValue) { string selectTarget = " * "; string fromSouce = " Inquiry_ColorCost "; string condition = " FirmId='" + inquiryId.ToString() + "' and colorName='" + colorName + "' and sizeValue='" + sizeValue + "' and PrintTypeId=" + printingTyId; IList result = _dataBase.SelectModel(selectTarget, fromSouce, condition); if (result != null && result.Count > 0) { return result[0]; } else { return null; } } } }