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
|
{
|
/// <summary>
|
/// 印工接口--SQL实现
|
/// </summary>
|
public class PrintingWorksDAL : IPrintingWorksDAL
|
{
|
|
Database _dataBase = null;
|
|
public PrintingWorksDAL()
|
{
|
_dataBase = new Database();
|
}
|
|
/// <summary>
|
/// 获取印工列表信息
|
/// </summary>
|
/// <param name="firmId"></param>
|
/// <returns></returns>
|
public IList<Model.Inquiry_PrintingWorks> 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<Model.Inquiry_PrintingWorks> result = _dataBase.SelectModel<Model.Inquiry_PrintingWorks>(selectTarget, fromSouce, condition);
|
return result;
|
}
|
|
/// <summary>
|
/// 获取系统设置的基本消耗设置
|
/// </summary>
|
/// <param name="paperId"></param>
|
/// <param name="brandId"></param>
|
/// <returns></returns>
|
private IList<Model.Inquiry_PrintingWorks> 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<Model.Inquiry_PrintingWorks> result = _dataBase.SelectModel<Model.Inquiry_PrintingWorks>(selectTarget, fromSouce, condition);
|
return result;
|
}
|
|
/// <summary>
|
/// 获取厂商设置的基本消耗设置
|
/// </summary>
|
/// <param name="paperId"></param>
|
/// <param name="brandId"></param>
|
/// <returns></returns>
|
private IList<Model.Inquiry_PrintingWorks> 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<Model.Inquiry_PrintingWorks> result = _dataBase.SelectModel<Model.Inquiry_PrintingWorks>(selectTarget, fromSouce, condition);
|
return result;
|
}
|
|
/// <summary>
|
/// 获取厂商的客户设置的基本消耗设置
|
/// </summary>
|
/// <param name="paperId"></param>
|
/// <param name="brandId"></param>
|
/// <returns></returns>
|
private IList<Model.Inquiry_PrintingWorks> 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<Model.Inquiry_PrintingWorks> result = _dataBase.SelectModel<Model.Inquiry_PrintingWorks>(selectTarget, fromSouce, condition);
|
return result;
|
}
|
|
/// <summary>
|
/// 保存印工操作
|
/// </summary>
|
/// <param name="list"></param>
|
/// <param name="firmId"></param>
|
/// <returns></returns>
|
public bool SaveModelList(IList<Model.Inquiry_PrintingWorks> 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;
|
}
|
|
|
|
/// <summary>
|
/// 判断是否存在基本消耗设置
|
/// </summary>
|
/// <param name="model"></param>
|
/// <param name="firmId"></param>
|
/// <param name="customerId"></param>
|
/// <returns></returns>
|
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<Model.Inquiry_PrintingWorks> result = _dataBase.SelectModel<Model.Inquiry_PrintingWorks>(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();
|
}
|
}
|
}
|