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 BindingProcessCostDAL : IBindingProcessCostDAL
{
private Database _dataBase = null;
public BindingProcessCostDAL()
{
_dataBase = new Database();
}
public IList GetModelList(Guid inquiryId, int printingTyId)
{
string selectTarget = @" a.PageNum,a.WorkId,c.ParameterName,
(
SELECT MAX(b.Price) FROM Inquiry_BindingProcessCost b WHERE b.PageNum=a.PageNum and b.WorkId=a.WorkId AND b.SizeKeyId=29
and b.FirmId='{0}' and b.PrintTypeId='{1}'
) AS Price29,
(
SELECT MAX(b.Price) FROM Inquiry_BindingProcessCost b WHERE b.PageNum=a.PageNum and b.WorkId=a.WorkId AND b.SizeKeyId=30
and b.FirmId='{0}' and b.PrintTypeId='{1}'
) AS Price30,
(
SELECT MAX(b.Price) FROM Inquiry_BindingProcessCost b WHERE b.PageNum=a.PageNum and b.WorkId=a.WorkId AND b.SizeKeyId=31
and b.FirmId='{0}' and b.PrintTypeId='{1}'
) AS Price31,
(
SELECT MAX(b.Price) FROM Inquiry_BindingProcessCost b WHERE b.PageNum=a.PageNum and b.WorkId=a.WorkId AND b.SizeKeyId=32
and b.FirmId='{0}' and b.PrintTypeId='{1}'
) AS Price32,
(
SELECT MAX(b.Price) FROM Inquiry_BindingProcessCost b WHERE b.PageNum=a.PageNum and b.WorkId=a.WorkId AND b.SizeKeyId=33
and b.FirmId='{0}' and b.PrintTypeId='{1}'
) AS Price33,
(
SELECT MAX(b.Price) FROM Inquiry_BindingProcessCost b WHERE b.PageNum=a.PageNum and b.WorkId=a.WorkId AND b.SizeKeyId=124
and b.FirmId='{0}' and b.PrintTypeId='{1}'
) AS Price124 ";
selectTarget = string.Format(selectTarget, inquiryId.ToString(), printingTyId);
string fromSouce = " Inquiry_BindingProcessCost a,SysInquiry_AfterParameterInfo c";
string condition = " a.FirmId='" + inquiryId.ToString() + "' and a.PrintTypeId=" + printingTyId + " and a.WorkId=c.KeyId GROUP BY a.PageNum,a.WorkId,c.ParameterName ";
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_BindingProcessCost 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_BindingProcessCost trueModel = model as Model.Inquiry_BindingProcessCost;
if (trueModel == null)
{
return false;
}
SqlParameter[] parameters = {
new SqlParameter("@FirmId", SqlDbType.UniqueIdentifier,16),
new SqlParameter("@PrintTypeId", SqlDbType.Int,4),
new SqlParameter("@PageNum", SqlDbType.Int,4),
new SqlParameter("@WorkId", SqlDbType.Int,4),
new SqlParameter("@SizeKeyId", 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.PrintTypeId;
parameters[2].Value = trueModel.PageNum;
parameters[3].Value = trueModel.WorkId;
parameters[4].Value = trueModel.SizeKeyId;
parameters[5].Value = trueModel.Price;
parameters[6].Value = trueModel.Operater;;
parameters[7].Value = trueModel.LastUpdateTime;
try
{
_dataBase.Query("Inquiry_BindingProcessCost_Update", CommandType.StoredProcedure, parameters);
}
catch (Exception ex)
{
throw ex;
}
return true;
}
public bool DeleteModel(Infrastructure.Domain.IAggregateRoot model)
{
throw new NotImplementedException();
}
public Inquiry_BindingProcessCost GetModel(int pageNum, int workId, int sizeKeyId, Guid inquiryId, int printingTyId)
{
string selectTarget = " * ";
string fromSouce = " Inquiry_BindingProcessCost ";
string condition = " FirmId='" + inquiryId.ToString() + "' and pageNum='" + pageNum + "' and workId='" + workId + "' and SizeKeyId='" + sizeKeyId + "' and PrintTypeId=" + printingTyId;
IList result = _dataBase.SelectModel(selectTarget, fromSouce, condition);
if (result != null && result.Count > 0)
{
return result[0];
}
else
{
return null;
}
}
}
}