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 PrintingWorksDAL : IPrintingWorksDAL { Database _dataBase = null; public PrintingWorksDAL() { _dataBase = new Database(); } /// /// 获取印工列表信息 /// /// /// public IList GetModelList(Guid inquiryId) { string selectTarget = @" b.MachineName,a.MachineId,a.MinPrintCount,a.MaxPrintCount,a.WorkPrice,a.WorkPriceUnit, a.AddPrintCount,a.AddPrice,a.VersionCost,a.VersionCostUnit,a.StartPrice, CASE WHEN a.MinPrintCount=0 AND a.MaxPrintCount=1000 THEN '1000印次以下' WHEN a.MinPrintCount=1001 AND a.MaxPrintCount=2000 THEN '1001-2000印次' WHEN a.MinPrintCount=2001 AND a.MaxPrintCount=3000 THEN '2001-3000印次' WHEN a.MinPrintCount=3001 AND a.MaxPrintCount=4000 THEN '3001-4000印次' WHEN a.MinPrintCount=4001 AND a.MaxPrintCount=5000 THEN '4001-5000印次' WHEN a.MinPrintCount=5001 AND a.MaxPrintCount=6000 THEN '5001-6000印次' WHEN a.MinPrintCount=6001 AND a.MaxPrintCount=7000 THEN '6001-7000印次' WHEN a.MinPrintCount=7001 AND a.MaxPrintCount=8000 THEN '7001-8000印次' WHEN a.MinPrintCount=8001 AND a.MaxPrintCount=9000 THEN '8001-9000印次' WHEN a.MinPrintCount=9001 AND a.MaxPrintCount=10000 THEN '9001-10000印次' WHEN a.MinPrintCount=10001 AND a.MaxPrintCount=0 THEN '长件' WHEN a.MinPrintCount=5001 AND a.MaxPrintCount=0 THEN '长件' WHEN a.MinPrintCount=0 AND a.MaxPrintCount=0 THEN '' END AS PrintCout "; string fromSouce = " Inquiry_PrintingWorks a INNER JOIN SysInquiry_PrintingMachine b ON a.MachineId=b.KeyId "; string condition = " a.FirmId='" + inquiryId.ToString() + "' ORDER BY a.MachineId,a.MinPrintCount "; IList result = _dataBase.SelectModel(selectTarget, fromSouce, condition); return result; } /// /// 获取系统设置的基本消耗设置 /// /// /// /// private IList GetModelListByAdmin() { string selectTarget = @" b.MachineName,a.MachineId,a.MinPrintCount,a.MaxPrintCount,a.WorkPrice,a.WorkPriceUnit, a.AddPrintCount,a.AddPrice,a.VersionCost,a.VersionCostUnit,a.StartPrice, CASE WHEN a.MinPrintCount=0 AND a.MaxPrintCount=1000 THEN '1000印次以下' WHEN a.MinPrintCount=1001 AND a.MaxPrintCount=2000 THEN '1001-2000印次' WHEN a.MinPrintCount=2001 AND a.MaxPrintCount=3000 THEN '2001-3000印次' WHEN a.MinPrintCount=3001 AND a.MaxPrintCount=4000 THEN '3001-4000印次' WHEN a.MinPrintCount=4001 AND a.MaxPrintCount=5000 THEN '4001-5000印次' WHEN a.MinPrintCount=5001 AND a.MaxPrintCount=6000 THEN '5001-6000印次' WHEN a.MinPrintCount=6001 AND a.MaxPrintCount=7000 THEN '6001-7000印次' WHEN a.MinPrintCount=7001 AND a.MaxPrintCount=8000 THEN '7001-8000印次' WHEN a.MinPrintCount=8001 AND a.MaxPrintCount=9000 THEN '8001-9000印次' WHEN a.MinPrintCount=9001 AND a.MaxPrintCount=10000 THEN '9001-10000印次' WHEN a.MinPrintCount=10001 AND a.MaxPrintCount=0 THEN '长件' WHEN a.MinPrintCount=5001 AND a.MaxPrintCount=0 THEN '长件' WHEN a.MinPrintCount=0 AND a.MaxPrintCount=0 THEN '' END AS PrintCout "; string fromSouce = " Inquiry_PrintingWorks a INNER JOIN SysInquiry_PrintingMachine b ON a.MachineId=b.KeyId "; string condition = " a.FirmId='" + UtilConst.AdminFirmId + "' ORDER BY a.MachineId,a.MinPrintCount "; IList result = _dataBase.SelectModel(selectTarget, fromSouce, condition); return result; } /// /// 获取厂商设置的基本消耗设置 /// /// /// /// private IList GetModelListByFirm(Guid firmId) { string selectTarget = @" b.MachineName,a.MachineId,a.MinPrintCount,a.MaxPrintCount,a.WorkPrice,a.WorkPriceUnit, a.AddPrintCount,a.AddPrice,a.VersionCost,a.VersionCostUnit,a.StartPrice, CASE WHEN a.MinPrintCount=0 AND a.MaxPrintCount=1000 THEN '1000印次以下' WHEN a.MinPrintCount=1001 AND a.MaxPrintCount=2000 THEN '1001-2000印次' WHEN a.MinPrintCount=2001 AND a.MaxPrintCount=3000 THEN '2001-3000印次' WHEN a.MinPrintCount=3001 AND a.MaxPrintCount=4000 THEN '3001-4000印次' WHEN a.MinPrintCount=4001 AND a.MaxPrintCount=5000 THEN '4001-5000印次' WHEN a.MinPrintCount=5001 AND a.MaxPrintCount=6000 THEN '5001-6000印次' WHEN a.MinPrintCount=6001 AND a.MaxPrintCount=7000 THEN '6001-7000印次' WHEN a.MinPrintCount=7001 AND a.MaxPrintCount=8000 THEN '7001-8000印次' WHEN a.MinPrintCount=8001 AND a.MaxPrintCount=9000 THEN '8001-9000印次' WHEN a.MinPrintCount=9001 AND a.MaxPrintCount=10000 THEN '9001-10000印次' WHEN a.MinPrintCount=10001 AND a.MaxPrintCount=0 THEN '长件' WHEN a.MinPrintCount=5001 AND a.MaxPrintCount=0 THEN '长件' WHEN a.MinPrintCount=0 AND a.MaxPrintCount=0 THEN '' END AS PrintCout "; string fromSouce = " Inquiry_PrintingWorks a INNER JOIN SysInquiry_PrintingMachine b ON a.MachineId=b.KeyId "; string condition = " a.FirmId='" + firmId.ToString() + "' and a.CustomerId is null ORDER BY a.MachineId,a.MinPrintCount "; IList result = _dataBase.SelectModel(selectTarget, fromSouce, condition); return result; } /// /// 获取厂商的客户设置的基本消耗设置 /// /// /// /// private IList GetModelListByCustomer(Guid firmId, Guid customerId) { string selectTarget = @" b.MachineName,a.MachineId,a.MinPrintCount,a.MaxPrintCount,a.WorkPrice,a.WorkPriceUnit, a.AddPrintCount,a.AddPrice,a.VersionCost,a.VersionCostUnit,a.StartPrice, CASE WHEN a.MinPrintCount=0 AND a.MaxPrintCount=1000 THEN '1000印次以下' WHEN a.MinPrintCount=1001 AND a.MaxPrintCount=2000 THEN '1001-2000印次' WHEN a.MinPrintCount=2001 AND a.MaxPrintCount=3000 THEN '2001-3000印次' WHEN a.MinPrintCount=3001 AND a.MaxPrintCount=4000 THEN '3001-4000印次' WHEN a.MinPrintCount=4001 AND a.MaxPrintCount=5000 THEN '4001-5000印次' WHEN a.MinPrintCount=5001 AND a.MaxPrintCount=6000 THEN '5001-6000印次' WHEN a.MinPrintCount=6001 AND a.MaxPrintCount=7000 THEN '6001-7000印次' WHEN a.MinPrintCount=7001 AND a.MaxPrintCount=8000 THEN '7001-8000印次' WHEN a.MinPrintCount=8001 AND a.MaxPrintCount=9000 THEN '8001-9000印次' WHEN a.MinPrintCount=9001 AND a.MaxPrintCount=10000 THEN '9001-10000印次' WHEN a.MinPrintCount=10001 AND a.MaxPrintCount=0 THEN '长件' WHEN a.MinPrintCount=5001 AND a.MaxPrintCount=0 THEN '长件' WHEN a.MinPrintCount=0 AND a.MaxPrintCount=0 THEN '' END AS PrintCout "; string fromSouce = " Inquiry_PrintingWorks a INNER JOIN SysInquiry_PrintingMachine b ON a.MachineId=b.KeyId "; string condition = " a.FirmId='" + firmId.ToString() + "' and a.CustomerId='" + customerId + "' ORDER BY a.MachineId,a.MinPrintCount "; 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_PrintingWorks model in list) { isSuccess = UpdateModel(model); if (!isSuccess) break; } if (isSuccess) scope.Complete(); } return isSuccess; } /// /// 判断是否存在基本消耗设置 /// /// /// /// /// public bool IsExitsModel(Guid firmId, Guid customerId) { string selectTarget = " KeyId "; string fromSouce = " Inquiry_PrintingWorks "; string condition = string.Empty; if (customerId == Guid.Empty) { condition = " FirmId='" + firmId.ToString() + "' AND CustomerId is null "; } else { condition = " FirmId='" + firmId.ToString() + "' AND CustomerId ='" + customerId.ToString() + "' "; } IList result = _dataBase.SelectModel(selectTarget, fromSouce, condition); if (result == null || result.Count == 0) return false; else return true; } public bool InserModel(Infrastructure.Domain.IAggregateRoot model) { //Model.Inquiry_PrintingWorks trueModel = model as Model.Inquiry_PrintingWorks; //if (trueModel == null) //{ // return false; //} //string tableName = @" Inquiry_PrintingWorks "; //string columns = string.Empty; //string condition = ""; //if (trueModel.CustomerId == Guid.Empty) //{ // columns = " '" + trueModel.FirmId + "',null,[MachineId],[MinPrintCount],[MaxPrintCount],[WorkPrice],[WorkPriceUnit],[AddPrintCount],[AddPrice],[VersionCost],[VersionCostUnit],[StartPrice],[Remark],[Operater],[OperateTime],[LastUpdateTime] "; // condition = " [FirmId]='" + UtilConst.AdminFirmId + "'"; //} //else //{ // if (IsExitsModel(trueModel.FirmId, Guid.Empty)) // { // columns = " '" + trueModel.FirmId + "','" + trueModel.CustomerId + "',[MachineId],[MinPrintCount],[MaxPrintCount],[WorkPrice],[WorkPriceUnit],[AddPrintCount],[AddPrice],[VersionCost],[VersionCostUnit],[StartPrice],[Remark],[Operater],[OperateTime],[LastUpdateTime] "; // condition = " [FirmId]='" + trueModel.FirmId + "' AND CustomerId is null "; // } // else // { // columns = " '" + trueModel.FirmId + "','" + trueModel.CustomerId + "',[MachineId],[MinPrintCount],[MaxPrintCount],[WorkPrice],[WorkPriceUnit],[AddPrintCount],[AddPrice],[VersionCost],[VersionCostUnit],[StartPrice],[Remark],[Operater],[OperateTime],[LastUpdateTime] "; // condition = " [FirmId]='" + UtilConst.AdminFirmId + "'"; // } //} //SqlParameter[] parameters = { // new SqlParameter("@TableName", tableName), // new SqlParameter("@Columns", columns), // new SqlParameter("@Condition", condition) //}; //try //{ // _dataBase.Query("sp_CopyModel", CommandType.StoredProcedure, parameters); //} //catch (Exception ex) //{ // return false; //} return true; } public bool UpdateModel(Infrastructure.Domain.IAggregateRoot model) { Model.Inquiry_PrintingWorks trueModel = model as Model.Inquiry_PrintingWorks; if (trueModel == null) { return false; } SqlParameter[] parameters = { new SqlParameter("@FirmId", SqlDbType.UniqueIdentifier,16), new SqlParameter("@MachineId", SqlDbType.Int,4), new SqlParameter("@MinPrintCount", SqlDbType.Int,4), new SqlParameter("@MaxPrintCount", SqlDbType.Int,4), new SqlParameter("@WorkPrice", SqlDbType.Money,8), new SqlParameter("@AddPrintCount", SqlDbType.Int,4), new SqlParameter("@AddPrice", SqlDbType.Money,8), new SqlParameter("@VersionCost", SqlDbType.Money,8), new SqlParameter("@StartPrice", SqlDbType.Money,8), new SqlParameter("@Operater", SqlDbType.VarChar,20), new SqlParameter("@LastUpdateTime", SqlDbType.DateTime) }; parameters[0].Value = trueModel.FirmId; parameters[1].Value = trueModel.MachineId; parameters[2].Value = trueModel.MinPrintCount; parameters[3].Value = trueModel.MaxPrintCount; parameters[4].Value = trueModel.WorkPrice; parameters[5].Value = trueModel.AddPrintCount; parameters[6].Value = trueModel.AddPrice; parameters[7].Value = trueModel.VersionCost; parameters[8].Value = trueModel.StartPrice; parameters[9].Value = trueModel.Operater; parameters[10].Value = trueModel.LastUpdateTime; try { _dataBase.Query("Inquiry_PrintingWorks_Update", CommandType.StoredProcedure, parameters); } catch (Exception ex) { throw ex; } return true; } public bool DeleteModel(Infrastructure.Domain.IAggregateRoot model) { throw new NotImplementedException(); } } }