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 MultipleAfterCostDAL : IMultipleAfterCostDAL
{
Database _dataBase = null;
public MultipleAfterCostDAL()
{
_dataBase = new Database();
}
public IList GetModelList(Guid inquiryId, int printingTyId)
{
string selectTarget = " a.AfterParameterId ,a.Price ,a.StartPriceBySingle , a.TotalStartPrice ,a.Unit ,a.PlatemakPrice ,a.StartPlatemakPrice ,a.PlatemakUnit,b.ParameterName ";
string fromSouce = " Inquiry_MultipleAfterCost a INNER JOIN SysInquiry_AfterParameterInfo b ON a.AfterParameterId=b.KeyId ";
string condition = " a.FirmId='" + inquiryId.ToString() + "' and a.PrintingTypeId='" + printingTyId + "'";
IList result = _dataBase.SelectModel(selectTarget, fromSouce, condition);
return result;
}
///
/// 获取系统设置的综合后道参数设置
///
///
///
///
private IList GetModelListByAdmin(int PrintingTypeId)
{
string selectTarget = " a.AfterParameterId,b.ParameterName,a.Price,a.StartPrice,a.PlatemakPrice,a.Unit ";
string fromSouce = " Inquiry_MultipleAfterCost a INNER JOIN SysInquiry_AfterParameterInfo b ON a.AfterParameterId=b.KeyId ";
string condition = " a.FirmId='" + UtilConst.AdminFirmId + "' and a.PrintingTypeId='" + PrintingTypeId + "'";
IList result = _dataBase.SelectModel(selectTarget, fromSouce, condition);
return result;
}
///
/// 获取厂商设置的综合后道参数设置
///
///
///
///
private IList GetModelListByFirm(Guid firmId, int PrintingTypeId)
{
string selectTarget = " a.AfterParameterId,b.ParameterName,a.Price,a.StartPrice,a.PlatemakPrice,a.Unit ";
string fromSouce = " Inquiry_MultipleAfterCost a INNER JOIN SysInquiry_AfterParameterInfo b ON a.AfterParameterId=b.KeyId ";
string condition = " a.FirmId='" + firmId.ToString() + "' and a.CostomerId is null and a.PrintingTypeId='" + PrintingTypeId + "' ";
IList result = _dataBase.SelectModel(selectTarget, fromSouce, condition);
return result;
}
///
/// 获取厂商的客户设置的综合后道参数设置
///
///
///
///
private IList GetModelListByCustomer(Guid firmId, Guid customerId, int PrintingTypeId)
{
string selectTarget = " a.AfterParameterId,b.ParameterName,a.Price,a.StartPrice,a.PlatemakPrice,a.Unit ";
string fromSouce = " Inquiry_MultipleAfterCost a INNER JOIN SysInquiry_AfterParameterInfo b ON a.AfterParameterId=b.KeyId ";
string condition = " a.FirmId='" + firmId.ToString() + "' and a.CostomerId='" + customerId + "' and a.PrintingTypeId='" + PrintingTypeId + "' ";
IList result = _dataBase.SelectModel(selectTarget, fromSouce, condition);
return result;
}
public bool SaveModelList(IList list, InquiryCondition inquiryCondition, int printingTyId)
{
bool isSuccess = true;
using (TransactionScope scope = new TransactionScope())
{
//执行复制全部询价参数数据
if (inquiryCondition.IsFirstSave())
{
new CommonInquiryHelper(_dataBase).CopyALLInquiryParameter(inquiryCondition);
}
foreach (Inquiry_MultipleAfterCost model in list)
{
isSuccess = UpdateModel(model);
if (!isSuccess)
break;
}
if (isSuccess)
scope.Complete();
}
return isSuccess;
}
///
/// 判断是否存在综合后道参数设置
///
///
///
///
///
public bool IsExitsModel(Guid firmId, Guid customerId, int printingTypeId)
{
string selectTarget = " KeyId ";
string fromSouce = " Inquiry_MultipleAfterCost ";
string condition = string.Empty;
if (customerId == Guid.Empty)
{
condition = " FirmId='" + firmId.ToString() + "' AND CostomerId is null and PrintingTypeId='" + printingTypeId + "' ";
}
else
{
condition = " FirmId='" + firmId.ToString() + "' AND CostomerId ='" + customerId.ToString() + "' and PrintingTypeId='" + printingTypeId + "' ";
}
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_MultipleAfterCost trueModel = model as Model.Inquiry_MultipleAfterCost;
//if (trueModel == null)
//{
// return false;
//}
//string tableName = @" Inquiry_MultipleAfterCost ";
//string columns = string.Empty;
//string condition = "";
//if (trueModel.CostomerId == Guid.Empty)
//{
// columns = " '" + trueModel.FirmId + "',null, PrintingTypeId ,AfterParameterId ,Price ,StartPrice ,Unit ,PlatemakPrice ,Operater ,OperateTime ,LastUpdateTime ";
// condition = " [FirmId]='" + UtilConst.AdminFirmId + "' and PrintingTypeId='" + trueModel.PrintingTypeId + "'";
//}
//else
//{
// if (IsExitsModel(trueModel.FirmId, Guid.Empty, trueModel.PrintingTypeId))
// {
// columns = " '" + trueModel.FirmId + "','" + trueModel.CostomerId + "',PrintingTypeId ,AfterParameterId ,Price ,StartPrice ,Unit ,PlatemakPrice ,Operater ,OperateTime ,LastUpdateTime ";
// condition = " [FirmId]='" + trueModel.FirmId + "' AND CostomerId is null and PrintingTypeId='" + trueModel.PrintingTypeId + "'";
// }
// else
// {
// columns = " '" + trueModel.FirmId + "','" + trueModel.CostomerId + "',PrintingTypeId ,AfterParameterId ,Price ,StartPrice ,Unit ,PlatemakPrice ,Operater ,OperateTime ,LastUpdateTime ";
// condition = " [FirmId]='" + UtilConst.AdminFirmId + "' and PrintingTypeId='" + trueModel.PrintingTypeId + "'";
// }
//}
//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_MultipleAfterCost trueModel = model as Model.Inquiry_MultipleAfterCost;
if (trueModel == null)
{
return false;
}
SqlParameter[] parameters = {
new SqlParameter("@FirmId", SqlDbType.UniqueIdentifier,16),
new SqlParameter("@PrintingTypeId", SqlDbType.Int,4),
new SqlParameter("@AfterParameterId", SqlDbType.Int,4),
new SqlParameter("@Price", SqlDbType.Money,8),
new SqlParameter("@StartPriceBySingle", SqlDbType.Money,8),
new SqlParameter("@TotalStartPrice", SqlDbType.Money,8),
new SqlParameter("@PlatemakPrice", SqlDbType.Money,8),
new SqlParameter("@StartPlatemakPrice", SqlDbType.Money,8),
new SqlParameter("@Operater", SqlDbType.VarChar,20),
new SqlParameter("@LastUpdateTime", SqlDbType.DateTime)};
parameters[0].Value = trueModel.FirmId;
parameters[1].Value = trueModel.PrintingTypeId;
parameters[2].Value = trueModel.AfterParameterId;
parameters[3].Value = trueModel.Price;
parameters[4].Value = trueModel.StartPriceBySingle;
parameters[5].Value = trueModel.TotalStartPrice;
parameters[6].Value = trueModel.PlatemakPrice;
parameters[7].Value = trueModel.StartPlatemakPrice;
parameters[8].Value = trueModel.Operater;
parameters[9].Value = trueModel.LastUpdateTime;
try
{
_dataBase.Query("Inquiry_MultipleAfterCost_Update", CommandType.StoredProcedure, parameters);
}
catch (Exception ex)
{
throw ex;
}
return true;
}
public bool DeleteModel(Infrastructure.Domain.IAggregateRoot model)
{
throw new NotImplementedException();
}
}
}