/**
* EC_OrderExtendDAL.cs
*
* 功 能: 订单扩展信息数据访问接口实现类
* 类 名: EC_OrderExtendDAL
*
* Ver 变更日期 负责人 变更内容
* ───────────────────────────────────
* V0.01 2013-4-23 10:09 吴崎均 更改InsertModel以及UpdateModel以与存储相匹配
* V0.02 2013-4-23 14:45 吴崎均 增加初始化构造
* V0.03 2013-5-29 14:38 吴崎均 修改更新数据方法:不更新剩余印刷数量
* V0.04 2013-6-1 14:14 吴崎均 修改更新数据方法:更新时更新订单印刷选项
*
*
*
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CY.IDAL;
using System.Data.SqlClient;
using System.Data;
using CY.Model;
using System.Transactions;
namespace CY.SQLDAL
{
///
/// 订单扩展信息数据访问接口实现类
///
internal class EC_OrderExtendDAL : IEC_OrderExtendDAL
{
private Database _dataBase = null;
///
/// 初始化构造
///
///
public EC_OrderExtendDAL(Database database)
{
_dataBase = database;
}
///
/// 默认构造
///
public EC_OrderExtendDAL()
{
_dataBase = new Database();
}
///
/// 新增
///
///
///
public bool InserModel(Infrastructure.Domain.IAggregateRoot model)
{
Model.EC_OrderExtend trueModel = model as Model.EC_OrderExtend;
if (trueModel == null)
{
return false;
}
SqlParameter delayTime = null;
if (trueModel.DelayTime.HasValue)
{
delayTime = new SqlParameter("@DelayTime", trueModel.DelayTime);
}
else
{
delayTime = new SqlParameter("@DelayTime", DBNull.Value);
}
IList sqlParms = new List()
{
new SqlParameter("@Keyid",trueModel.Keyid),
new SqlParameter("@FileId",trueModel.FileId),
new SqlParameter("@ProofreadWayId",trueModel.ProofreadWayId),
new SqlParameter("@ProofreadState",trueModel.ProofreadState),
new SqlParameter("@ProofreadFileId",trueModel.ProofreadFileId),
new SqlParameter("@PrintNum",trueModel.PrintNum),
new SqlParameter("@ExigencyCaseId",trueModel.ExigencyCaseId),
new SqlParameter("@BusinessManagerId",trueModel.BusinessManagerId),
new SqlParameter("@CustomerManagerId",trueModel.CustomerManagerId),
new SqlParameter("@CustomerLevelId",trueModel.CustomerLevelId),
new SqlParameter("@Contacts",trueModel.Contacts),
new SqlParameter("@ContactPhone",trueModel.ContactPhone),
new SqlParameter("@InvoiceId",trueModel.InvoiceId),
new SqlParameter("@SurplusPrintNum",trueModel.SurplusPrintNum),
new SqlParameter("@Operate",trueModel.Operate),
new SqlParameter("@Remark",trueModel.Remark),
new SqlParameter("@BookNum",trueModel.BookNum),
new SqlParameter("@BookPrice",trueModel.BookPrice),
new SqlParameter("@NumPerBag",trueModel.NumPerBag),
new SqlParameter("@BagNum",trueModel.BagNum),
delayTime,
new SqlParameter("@Productionprogress",trueModel.Productionprogress),
new SqlParameter("@PrintPackDeliveryRequir",trueModel.PrintPackDeliveryRequir),
new SqlParameter("@printunit",trueModel.printunit)
};
int i = -1;
while (++i < sqlParms.Count)
{
sqlParms[i].Value = null == sqlParms[i].Value ? DBNull.Value : sqlParms[i].Value;
}
try
{
_dataBase.Query("sp_EC_OrderExtend_Insert", CommandType.StoredProcedure, sqlParms.ToArray());
}
catch (Exception ex)
{
throw ex;
}
return true;
}
///
/// 修改
///
///
///
public bool OldUpdate(Infrastructure.Domain.IAggregateRoot model)
{
EC_OrderBasic basic = model as Model.EC_OrderBasic;
Model.EC_OrderExtend trueModel = basic.OrderExtend;
if (trueModel == null)
{
return false;
}
SqlParameter unitPricePar = null;
if (basic.UnitPrice.HasValue)
{
unitPricePar = new SqlParameter("@UnitPrice", basic.UnitPrice);
}
else
{
unitPricePar = new SqlParameter("@UnitPrice", DBNull.Value);
}
IList sqlParms = new List()
{
new SqlParameter("@Keyid",trueModel.Keyid),
new SqlParameter("@ProofreadWayId",trueModel.ProofreadWayId),
new SqlParameter("@ExigencyCaseId",trueModel.ExigencyCaseId),
new SqlParameter("@BusinessManagerId",trueModel.BusinessManagerId),
new SqlParameter("@CustomerManagerId",trueModel.CustomerManagerId),
new SqlParameter("@CustomerLevelId",trueModel.CustomerLevelId),
new SqlParameter("@Contacts",trueModel.Contacts),
new SqlParameter("@ContactPhone",trueModel.ContactPhone),
new SqlParameter("@SurplusPrintNum",trueModel.SurplusPrintNum),
unitPricePar,
new SqlParameter("@SumPrice",basic.SumPrice),
//new SqlParameter("@SurplusPrintNum",trueModel.SurplusPrintNum),
new SqlParameter("@Operate",trueModel.Operate),
new SqlParameter("@Remark",trueModel.Remark),
new SqlParameter("@BookNum",trueModel.BookNum),
new SqlParameter("@BookPrice",trueModel.BookPrice),
new SqlParameter("@NumPerBag",trueModel.NumPerBag),
new SqlParameter("@BagNum",trueModel.BagNum),
new SqlParameter("@PrintPackDeliveryRequir",trueModel.PrintPackDeliveryRequir),
new SqlParameter("@printunit",trueModel.printunit)
};
try
{
_dataBase.Query("sp_EC_OrderExtend_Update", CommandType.StoredProcedure, sqlParms.ToArray());
}
catch (Exception ex)
{
throw ex;
}
return true;
}
///
/// 修改
///
/// 订单扩展信息
/// 订单印刷选项
///
public bool UpdateModel(Infrastructure.Domain.IAggregateRoot model, EC_OrderPrintParameter orderParam = null)
{
EC_OrderBasic trueModel = model as Model.EC_OrderBasic;
if (trueModel == null)
{
return false;
}
EC_AcceptWayByOrderDAL _eC_AcceptWayByOrderDAL = new EC_AcceptWayByOrderDAL(_dataBase);
EC_OrderPrintParameterDAL eC_OrderPrintParameterDAL = null == orderParam ? null : new EC_OrderPrintParameterDAL();
using (TransactionScope tran = new TransactionScope())
{
if (trueModel.AcceptWayByOrder == null || !_eC_AcceptWayByOrderDAL.UpdateModel(trueModel.AcceptWayByOrder))
{
return false;
}
if (trueModel.OrderTypeId == 1)
{
if (null == orderParam || eC_OrderPrintParameterDAL.UpdateModel(orderParam))
{
}
else
return false;
if (!this.OldUpdate(trueModel))
{
return false;
}
if (!new EC_OrderBasicDAL(_dataBase).UpdateModel(trueModel))
{
return false;
}
}
tran.Complete();
}
return true;
}
///
/// 修改外协订单
///
///
///
///
///
public bool UpdateOutOrderInfo(EC_OrderBasic orderBasic, EC_OrderExtend orderExtend, EC_OrderPrintParameter orderParam = null)
{
EC_OrderBasic trueModel = orderBasic as Model.EC_OrderBasic;
if (trueModel == null)
{
return false;
}
EC_AcceptWayByOrderDAL _eC_AcceptWayByOrderDAL = new EC_AcceptWayByOrderDAL(_dataBase);
EC_OrderPrintParameterDAL eC_OrderPrintParameterDAL = null == orderParam ? null : new EC_OrderPrintParameterDAL();
using (TransactionScope tran = new TransactionScope())
{
if (trueModel.AcceptWayByOrder == null)
{
return false;
}
if (trueModel.AcceptWayByOrder.Keyid == null)
{
if (!_eC_AcceptWayByOrderDAL.InserModel(trueModel.AcceptWayByOrder))
{
return false;
}
}
else
{
if (!_eC_AcceptWayByOrderDAL.UpdateModel(trueModel.AcceptWayByOrder))
{
return false;
}
}
if (trueModel.OrderTypeId == 2 || trueModel.OrderTypeId == 4)
{
if (null == orderParam || eC_OrderPrintParameterDAL.UpdateModel(orderParam))
{
}
else
return false;
if (!this.OldUpdate(trueModel))
{
return false;
}
if (!new EC_OrderBasicDAL(_dataBase).UpdateModel(trueModel))
{
return false;
}
}
tran.Complete();
}
return true;
}
///
/// 删除
///
///
///
public bool DeleteModel(Infrastructure.Domain.IAggregateRoot model)
{
Model.EC_OrderExtend trueModel = model as Model.EC_OrderExtend;
if (trueModel == null)
{
return false;
}
IList sqlParms = new List()
{
new SqlParameter("@Keyid",trueModel.Keyid)
};
try
{
_dataBase.Query("sp_EC_OrderExtend_DeleteRow", CommandType.StoredProcedure, sqlParms.ToArray());
}
catch (Exception ex)
{
throw ex;
}
return true;
}
///
/// 分页查询
///
///
///
///
public IEnumerable SelectModelPage(Infrastructure.Query.Query query, Infrastructure.Query.Pagination pagination)
{
throw new NotImplementedException();
}
///
/// 单个查询
///
///
///
public IEnumerable SelectAllModel(Infrastructure.Query.Query query)
{
throw new NotImplementedException();
}
///
/// 更新订单扩展表剩余印刷数量
///
///
///
///
///
public bool UpSurplusPrintNum(int? Keyid, int? SurplusPrintNum, string Operator)
{
bool result = false;
IList sqlParms = new List()
{
new SqlParameter("@Keyid",Keyid),
new SqlParameter("@SurplusPrintNum",SurplusPrintNum),
new SqlParameter("@Operator",Operator),
new SqlParameter(){ParameterName="@result",Direction=ParameterDirection.ReturnValue,SqlDbType=SqlDbType.Int}
};
try
{
_dataBase.Query("sp_EC_OrderExtend_Update_SurplusPrintNum", CommandType.StoredProcedure, sqlParms.ToArray());
result = 1.Equals(sqlParms[3].Value);
return result;
}
catch (Exception ex)
{
throw ex;
}
}
public bool UpdateModel(Infrastructure.Domain.IAggregateRoot model)
{
throw new NotImplementedException();
}
}
}