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 AdhesiveFastCostDAL : IAdhesiveFastCostDAL
|
{
|
Database _dataBase = null;
|
|
public AdhesiveFastCostDAL()
|
{
|
_dataBase = new Database();
|
}
|
|
/// <summary>
|
/// 获取不干胶的设置信息
|
/// </summary>
|
/// <param name="inquiryId"></param>
|
/// <returns></returns>
|
public IList<Model.Inquiry_AdhesiveFastCost> 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<Model.Inquiry_AdhesiveFastCost> result = _dataBase.SelectModel<Model.Inquiry_AdhesiveFastCost>(selectTarget, fromSouce, condition);
|
return result;
|
}
|
|
|
/// <summary>
|
/// 保存不干胶快速询价
|
/// </summary>
|
/// <param name="list"></param>
|
/// <param name="inquiryCondition"></param>
|
/// <returns></returns>
|
public bool SaveModelList(IList<Model.Inquiry_AdhesiveFastCost> 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;
|
}
|
|
/// <summary>
|
/// 新增不干胶快速询价
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
public bool InserModel(Infrastructure.Domain.IAggregateRoot model)
|
{
|
return true;
|
}
|
|
/// <summary>
|
/// 更新不干胶快速询价
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
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;
|
}
|
|
/// <summary>
|
/// 删除不干胶快速询价
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
public bool DeleteModel(Infrastructure.Domain.IAggregateRoot model)
|
{
|
throw new NotImplementedException();
|
}
|
|
/// <summary>
|
/// 根据条件获取不干胶实体
|
/// </summary>
|
/// <param name="area"></param>
|
/// <param name="shape"></param>
|
/// <param name="coveredTypeId"></param>
|
/// <param name="printCount"></param>
|
/// <param name="inquiryId"></param>
|
/// <returns></returns>
|
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<Inquiry_AdhesiveFastCost> list = _dataBase.SelectModel<Inquiry_AdhesiveFastCost>("*", "Inquiry_AdhesiveFastCost",condition);
|
if (list != null && list.Count > 0)
|
{
|
model = list[0];
|
}
|
return model;
|
}
|
}
|
}
|