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
{
public class EC_MergerSingleDAL : IEC_MergerSingleDAL
{
private Database _dataBase = null;
public EC_MergerSingleDAL()
{
_dataBase = new Database();
}
public EC_MergerSingleDAL(Database database)
{
_dataBase = database;
}
///
/// 新增
///
///
///
public bool InserModel(Infrastructure.Domain.IAggregateRoot model)
{
Model.EC_MergerSingle trueModel = model as Model.EC_MergerSingle;
if (trueModel == null)
{
return false;
}
IList sqlParms = new List()
{
new SqlParameter(){Direction=ParameterDirection.ReturnValue,SqlDbType = SqlDbType.Int},
new SqlParameter("@Member_id",trueModel.Member_id),
new SqlParameter("@PO_OrderId",trueModel.PO_OrderId),
new SqlParameter("@PO_OrderNum",trueModel.PO_OrderNum),
new SqlParameter("@PMS_OrderNum",trueModel.PMS_OrderNum),
new SqlParameter("@PMS_OrderPeople",trueModel.PMS_OrderPeople),
new SqlParameter("@PMS_OrderTime",trueModel.PMS_OrderTime),
new SqlParameter("@PMS_Emergency",trueModel.PMS_Emergency),
new SqlParameter("@PMS_Printers",trueModel.PMS_Printers),
new SqlParameter("@PMS_IsM",trueModel.PMS_IsM),
new SqlParameter("@PMS_FactoryId",trueModel.PMS_FactoryId),
new SqlParameter("@PMS_PaperName",trueModel.PMS_PaperName),
new SqlParameter("@PMS_PaperSpecification",trueModel.PMS_PaperSpecification),
new SqlParameter("@PMS_PaperCount",trueModel.PMS_PaperCount ?? 0),
new SqlParameter("@PMS_PaperPositive",trueModel.PMS_PaperPositive ?? 0),
new SqlParameter("@PMS_PaperConsume",trueModel.PMS_PaperConsume ?? 0),
new SqlParameter("@PMS_Machine",trueModel.PMS_Machine),
new SqlParameter("@PMS_Mode",trueModel.PMS_Mode),
new SqlParameter("@PMS_IsRevisedEdition",trueModel.PMS_IsRevisedEdition),
new SqlParameter("@PMS_IsColorSamples",trueModel.PMS_IsColorSamples),
new SqlParameter("@PMS_CTP",trueModel.PMS_CTP),
new SqlParameter("@PMS_Film",trueModel.PMS_Film),
new SqlParameter("@PMS_PSBan",trueModel.PMS_PSBan),
new SqlParameter("@PMS_ChromaticNumber",trueModel.PMS_ChromaticNumber),
new SqlParameter("@PMS_CompletionTime",trueModel.PMS_CompletionTime),
new SqlParameter("@PMS_TotalPrice",trueModel.PMS_TotalPrice ?? 0),
new SqlParameter("@PMS_Collection",trueModel.PMS_Collection ?? 0),
new SqlParameter("@PMS_AccountsReceivable",trueModel.PMS_AccountsReceivable ?? 0),
new SqlParameter("@PMS_Remarks",trueModel.PMS_Remarks),
new SqlParameter("@PMS_IsPrint",trueModel.PMS_IsPrint ?? 0),
new SqlParameter("@PMS_CustomsName",trueModel.PMS_CustomsName),
new SqlParameter("@PMS_Title",trueModel.PMS_Title),
new SqlParameter("@LastUpdateTime",trueModel.LastUpdateTime),
new SqlParameter("@Operator",trueModel.Operator) ,
new SqlParameter("@PMS_OldNum",trueModel.PMS_OldNum) ,
new SqlParameter("@PMS_OldId",trueModel.PMS_OldId) ,
new SqlParameter("@PMS_PaperSource",trueModel.PMS_PaperSource) ,
new SqlParameter("@PMS_PaperNameType",trueModel.PMS_PaperNameType ?? 0) ,
new SqlParameter("@PMS_PaperSpecType",trueModel.PMS_PaperSpecType ?? 0) ,
new SqlParameter("@PMS_PlateSource",trueModel.PMS_PlateSource ?? 0) ,
new SqlParameter("@PMS_CTPSpecType",trueModel.PMS_CTPSpecType ?? 0) ,
new SqlParameter("@PMS_FilmType",trueModel.PMS_FilmType ?? 0) ,
new SqlParameter("@PMS_CTPCount",trueModel.PMS_CTPCount ?? 0) ,
new SqlParameter("@PMS_PSCount",trueModel.PMS_PSCount ?? 0),
new SqlParameter("@PMS_PaperNameTypeName",trueModel.PMS_PaperNameTypeName??""),
new SqlParameter("@PMS_PaperSpecTypeName",trueModel.PMS_PaperSpecTypeName??""),
new SqlParameter("@PMS_PlateSourceName",trueModel.PMS_PlateSourceName??""),
new SqlParameter("@PMS_CTPSpecTypeName",trueModel.PMS_CTPSpecTypeName??""),
new SqlParameter("@PMS_FilmTypeName",trueModel.PMS_FilmTypeName??"")
};
try
{
_dataBase.Query("sp_EC_MergerSingle_Insert", CommandType.StoredProcedure, sqlParms.ToArray());
trueModel.Keyid = (int)sqlParms[0].Value;
}
catch (Exception ex)
{
throw ex;
}
return true;
}
///
/// 修改
///
///
///
public bool UpdateModel(Infrastructure.Domain.IAggregateRoot model)
{
Model.EC_MergerSingle trueModel = model as Model.EC_MergerSingle;
if (trueModel == null)
{
return false;
}
IList sqlParms = new List()
{
new SqlParameter("@Keyid",trueModel.Keyid),
new SqlParameter("@Member_id",trueModel.Member_id),
new SqlParameter("@PO_OrderId",trueModel.PO_OrderId),
new SqlParameter("@PO_OrderNum",trueModel.PO_OrderNum),
new SqlParameter("@PMS_OrderNum",trueModel.PMS_OrderNum),
new SqlParameter("@PMS_OrderPeople",trueModel.PMS_OrderPeople),
new SqlParameter("@PMS_OrderTime",trueModel.PMS_OrderTime),
new SqlParameter("@PMS_Emergency",trueModel.PMS_Emergency),
new SqlParameter("@PMS_Printers",trueModel.PMS_Printers),
new SqlParameter("@PMS_IsM",trueModel.PMS_IsM),
new SqlParameter("@PMS_FactoryId",trueModel.PMS_FactoryId),
new SqlParameter("@PMS_PaperName",trueModel.PMS_PaperName),
new SqlParameter("@PMS_PaperSpecification",trueModel.PMS_PaperSpecification),
new SqlParameter("@PMS_PaperCount",trueModel.PMS_PaperCount),
new SqlParameter("@PMS_PaperPositive",trueModel.PMS_PaperPositive),
new SqlParameter("@PMS_PaperConsume",trueModel.PMS_PaperConsume),
new SqlParameter("@PMS_Machine",trueModel.PMS_Machine),
new SqlParameter("@PMS_Mode",trueModel.PMS_Mode),
new SqlParameter("@PMS_IsRevisedEdition",trueModel.PMS_IsRevisedEdition),
new SqlParameter("@PMS_IsColorSamples",trueModel.PMS_IsColorSamples),
new SqlParameter("@PMS_CTP",trueModel.PMS_CTP),
new SqlParameter("@PMS_Film",trueModel.PMS_Film),
new SqlParameter("@PMS_PSBan",trueModel.PMS_PSBan),
new SqlParameter("@PMS_ChromaticNumber",trueModel.PMS_ChromaticNumber),
new SqlParameter("@PMS_CompletionTime",trueModel.PMS_CompletionTime),
new SqlParameter("@PMS_TotalPrice",trueModel.PMS_TotalPrice),
new SqlParameter("@PMS_Collection",trueModel.PMS_Collection),
new SqlParameter("@PMS_AccountsReceivable",trueModel.PMS_AccountsReceivable),
new SqlParameter("@PMS_Remarks",trueModel.PMS_Remarks),
new SqlParameter("@PMS_IsPrint",trueModel.PMS_IsPrint),
new SqlParameter("@PMS_CustomsName",trueModel.PMS_CustomsName),
new SqlParameter("@PMS_Title",trueModel.PMS_Title),
new SqlParameter("@LastUpdateTime",trueModel.LastUpdateTime),
new SqlParameter("@Operator",trueModel.Operator) ,
new SqlParameter("@PMS_OldNum",trueModel.PMS_OldNum) ,
//new SqlParameter("@PMS_OldId",trueModel.PMS_OldId),
new SqlParameter("@PMS_PaperSource",trueModel.PMS_PaperSource) ,
new SqlParameter("@PMS_PaperNameType",trueModel.PMS_PaperNameType) ,
new SqlParameter("@PMS_PaperSpecType",trueModel.PMS_PaperSpecType) ,
new SqlParameter("@PMS_PlateSource",trueModel.PMS_PlateSource) ,
new SqlParameter("@PMS_CTPSpecType",trueModel.PMS_CTPSpecType) ,
new SqlParameter("@PMS_FilmType",trueModel.PMS_FilmType) ,
new SqlParameter("@PMS_CTPCount",trueModel.PMS_CTPCount) ,
new SqlParameter("@PMS_PSCount",trueModel.PMS_PSCount),
new SqlParameter("@PMS_PaperNameTypeName",trueModel.PMS_PaperNameTypeName??""),
new SqlParameter("@PMS_PaperSpecTypeName",trueModel.PMS_PaperSpecTypeName??""),
new SqlParameter("@PMS_PlateSourceName",trueModel.PMS_PlateSourceName??""),
new SqlParameter("@PMS_CTPSpecTypeName",trueModel.PMS_CTPSpecTypeName??""),
new SqlParameter("@PMS_FilmTypeName",trueModel.PMS_FilmTypeName??"")
};
try
{
_dataBase.Query("sp_EC_MergerSingle_Update", CommandType.StoredProcedure, sqlParms.ToArray());
}
catch (Exception ex)
{
throw ex;
}
return true;
}
///
/// 删除
///
///
///
public bool DeleteModel(Infrastructure.Domain.IAggregateRoot model)
{
Model.EC_MergerSingle trueModel = model as Model.EC_MergerSingle;
if (trueModel == null)
{
return false;
}
IList sqlParms = new List()
{
new SqlParameter("@Keyid",trueModel.Keyid)
};
try
{
_dataBase.Query("sp_EC_MergerSingle_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 EC_MergerSingle GetModelByKeyid(int? Keyid)
{
if (Keyid == null)
return null;//错误数据返会空
IList result = _dataBase.SelectModel("*", "EC_MergerSingle", string.Format(" Keyid='{0}'", Keyid)) as IList;//执行查询
return (null == result || result.Count == 0) ? null : result[0];//返回结果
}
///
/// 根据订单编号获得信息
///
///
///
public EC_MergerSingle GetModelByOrderId(int? OrderId)
{
if (OrderId == null)
return null;//错误数据返会空
IList result = _dataBase.SelectModel("*", "EC_MergerSingle", string.Format(" PO_OrderId='{0}'", OrderId)) as IList;//执行查询
return (null == result || result.Count == 0) ? null : result[0];//返回结果
}
///
/// 根据编号获得子订单信息
///
///
///
public IEnumerable GetEC_MergerOrdersListByKeyid(int? Keyid)
{
try
{
if (Keyid == null)
return null;//错误数据返会空
IList result = _dataBase.SelectModel("*", "EC_MergerOrders", string.Format(" MergerId='{0}'", Keyid)) as IList;//执行查询
return result;//返回结果
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 根据会员编号获取最新合版施工单号
///
/// 会员编号
///
public string GetPMS_OrderNum(Guid Memberid)
{
if (Memberid == null)
return null;//错误数据返会空
string NumberHead = DateTime.Now.ToString("yyyyMMdd");
string NumberFoot = "001";
try
{
IList result = _dataBase.SelectModel("*", "EC_MergerSingle", string.Format(" Member_Id='{0}' and PMS_OrderNum like '{1}%'", Memberid, NumberHead)) as IList;//执行查询
if (result != null && result.Count > 0)
{
NumberFoot = (int.Parse(result.Max(x => x.PMS_OrderNum).Substring(8, 3)) + 1).ToString("000");
}
else
NumberFoot = "001";
}
catch (Exception ex)
{
NumberFoot = "001";
}
return NumberHead + NumberFoot;
}
///
/// 新增合版施工单
///
///
///
///
///
///
///
///
///
///
public bool AddSpecialForums(List m_EC_OrderOperateList, EC_MergerSingle m_EC_MergerSingle, List m_EC_MergerOrdersList, bool IsOut, OA_OrderWorkListRelation m_OA_OrderWorkListRelation_new, EC_OrderBasic orderBasic, EC_AcceptWayByOrder acceptWayByOrder, EC_OrderPrintParameter orderPrintParameter, List m_OA_OutOfStorageList, string[] orderId)
{
try
{
bool result = true;
EC_OrderBasicDAL dal_EC_OrderBasicDAL = new EC_OrderBasicDAL(_dataBase);
EC_OrderExtendDAL dal_EC_OrderExtendDAL = new EC_OrderExtendDAL(_dataBase);
OA_OrderWorkListRelationDAL dal_OA_OrderWorkListRelationDAL = new OA_OrderWorkListRelationDAL(_dataBase);
EC_MergerOrdersDAL dal_EC_MergerOrdersDAL = new EC_MergerOrdersDAL(_dataBase);
EC_OrderPrintParameterDAL _eC_OrderPrintParameterDAL = new EC_OrderPrintParameterDAL(_dataBase);
Pay_TradingSingleDAL _pay_TradingSingleDAL = new Pay_TradingSingleDAL(_dataBase);
EC_AcceptWayByOrderDAL _eC_AcceptWayByOrderDAL = new EC_AcceptWayByOrderDAL(_dataBase);
EC_OrderOperateDAL _eC_OrderOperateDAL = new EC_OrderOperateDAL(_dataBase);
EC_OrderExtend orderExtend = orderBasic.OrderExtend;
Pay_TradingSingle tradingSingle = orderBasic.TradingSingle;
int? NewOrderId = 0;
using (TransactionScope t_TransactionScope = new TransactionScope())
{
//如果是外协
if (IsOut)
{
if (result)
{
orderBasic.OutId = 0;
result = dal_EC_OrderBasicDAL.InserModel(orderBasic);
}
else
return false;
if (result)
{
NewOrderId = acceptWayByOrder.TargetId = tradingSingle.OrderId = orderExtend.Keyid = orderBasic.Keyid;//获取返回的订单唯一编号
result = dal_EC_OrderExtendDAL.InserModel(orderExtend);
}
else
return false;
if (result)
{
result = _eC_AcceptWayByOrderDAL.InserModel(acceptWayByOrder);
}
else
return false;
if (result)
{
result = _pay_TradingSingleDAL.InserModel(tradingSingle);
}
else
return false;
if (result)
{
result = _eC_OrderOperateDAL.InserModel(new EC_OrderOperate()
{
OperateType = 1,
Operator = orderBasic.Operator,
OrderId = orderBasic.Keyid,
Remark = string.Empty
});
}
else
return false;
if (result)
{
orderPrintParameter.OrderId = orderBasic.Keyid.Value;
result = _eC_OrderPrintParameterDAL.InserModel(orderPrintParameter);
}
else
return false;
if (orderId != null && orderId.Length > 0)
{
foreach (var item in orderId)
{
EC_OrderBasic item_EC_OrderBasic = dal_EC_OrderBasicDAL.SelectModelById(int.Parse(item));
if (item_EC_OrderBasic != null)
{
item_EC_OrderBasic.OutId = -3;
result = dal_EC_OrderBasicDAL.UpdateModel(item_EC_OrderBasic);
if (!result)
{
return false;
}
else
{
//无操作
}
}
}
}
}
if (result)
{
m_EC_MergerSingle.PO_OrderId = orderBasic.Keyid ?? 0;
m_EC_MergerSingle.PO_OrderNum = orderBasic.SellerOrderId ?? "";
result = InserModel(m_EC_MergerSingle);
if (result)
{
for (int i = 0; i < m_EC_OrderOperateList.Count; i++)
{
if (result)
{
result = dal_EC_OrderExtendDAL.UpSurplusPrintNum(m_EC_OrderOperateList[i].OrderId, m_EC_MergerOrdersList[i].PO_Count, m_EC_MergerSingle.Operator);
if (result)
{
result = dal_EC_OrderBasicDAL.UpdateOrderStateUnit(m_EC_OrderOperateList[i]);
if (result)
{
m_EC_MergerOrdersList[i].MergerId = m_EC_MergerSingle.Keyid;
result = dal_EC_MergerOrdersDAL.InserModel(m_EC_MergerOrdersList[i]);
}
else
{
return false;
}
}
else
{
return false;
}
}
else
{
return false;
}
}
}
}
else
{
return false;
}
if (IsOut)
{
if (result)
{
m_OA_OrderWorkListRelation_new.OrderId = orderBasic.Keyid;
m_OA_OrderWorkListRelation_new.RelationTargetId = m_EC_MergerSingle.Keyid;
result = dal_OA_OrderWorkListRelationDAL.InserModel(m_OA_OrderWorkListRelation_new);
}
else
return false;
}
OA_OutOfStorageDAL dal_OA_OutOfStorageDAL = new OA_OutOfStorageDAL();
if (result)
{
foreach (var m_OA_OutOfStorage in m_OA_OutOfStorageList)
{
m_OA_OutOfStorage.Remark = string.Format("合版:" + m_EC_MergerSingle.PMS_OrderNum + "");
dal_OA_OutOfStorageDAL.InserModel(m_OA_OutOfStorage);
}
}
if (result)
{
t_TransactionScope.Complete();
}
else
return false;
}
return result;
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 修改合版施工单
///
///
///
///
public bool UpdateSpecialForums(EC_MergerSingle m_EC_MergerSingle, List m_EC_MergerOrdersList)
{
try
{
bool result = false;
EC_MergerOrdersDAL dal_EC_MergerOrdersDAL = new EC_MergerOrdersDAL(_dataBase);
List m_EC_MergerOrdersList_Old = GetEC_MergerOrdersListByKeyid(m_EC_MergerSingle.Keyid) as List;
using (TransactionScope t_TransactionScope = new TransactionScope())
{
result = UpdateModel(m_EC_MergerSingle);
if (result)
{
foreach (var m_EC_MergerOrders in m_EC_MergerOrdersList_Old)
{
if (result)
{
result = dal_EC_MergerOrdersDAL.DeleteModel(m_EC_MergerOrders);
}
else
return false;
}
foreach (var m_EC_MergerOrders in m_EC_MergerOrdersList)
{
if (result)
{
m_EC_MergerOrders.MergerId = m_EC_MergerSingle.Keyid;
result = dal_EC_MergerOrdersDAL.InserModel(m_EC_MergerOrders);
}
else
return false;
}
if (result)
{
t_TransactionScope.Complete();
}
}
}
return result;
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 分页查询
///
///
///
///
public IEnumerable SelectModelPage(Infrastructure.Query.Pagination pagination, Guid MemberId, string PrintName, string CustomName, string PSO_OrderNum, DateTime? beginTime, DateTime? endTime, string PMS_Printers, string PO_OrderNum, string PayStates, string PrintStates)
{
try
{
string Condition = " 1=1 ";
if (MemberId != Guid.Empty)
{
Condition += " and Member_id = '" + MemberId + "'";
}
if (beginTime.HasValue)
{
Condition += string.Format(" and CAST(PMS_OrderTime AS DATE) >='{0}'", beginTime);
}
if (endTime.HasValue)
{
Condition += string.Format(" and CAST(PMS_OrderTime AS DATE) <='{0}'", endTime);
}
if (!string.IsNullOrEmpty(CustomName))
{
Condition += string.Format(" and PMS_CustomsName like '%{0}%'", CustomName);
}
if (!string.IsNullOrEmpty(PrintName))
{
Condition += string.Format(" and PMS_Title like '%{0}%'", PrintName);
}
if (!string.IsNullOrEmpty(PSO_OrderNum))
{
Condition += string.Format(" and PMS_OrderNum like '%{0}%'", PSO_OrderNum);
}
if (!string.IsNullOrEmpty(PMS_Printers))
{
Condition += string.Format(" and PMS_Printers = '{0}'", PMS_Printers);
}
if (!string.IsNullOrEmpty(PO_OrderNum))
{
Condition += string.Format(" and PO_OrderNum like '%{0}%'", PO_OrderNum);
}
if (!string.IsNullOrEmpty(PayStates))
{
Condition += string.Format(" and PMS_IsPay = {0}", Convert.ToInt32(PayStates));
}
if (!string.IsNullOrEmpty(PrintStates))
{
Condition += string.Format(" and PMS_IsPrint = {0}", Convert.ToInt32(PrintStates));
}
return _dataBase.SelectModelPage(pagination, " *", " EC_MergerSingle", " PMS_OrderNum DESC ", " PMS_OrderNum DESC ", Condition);
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 根据原订单号和类型获取订单和工单关系
///
///
///
///
public OA_OrderWorkListRelation GetOA_OrderWorkListRelationByOrderIdAndTypeId(int? OrderId, int? TypeId)
{
try
{
IList result = _dataBase.SelectModel(" * ", " OA_OrderWorkListRelation ", string.Format(" OrderId={0} and RelationTypeId={1} ", OrderId, TypeId)) as IList;
return null == result || result.Count < 1 ? null : result[0];
}
catch (Exception ex)
{
throw ex;
}
}
}
}