/**
* EC_OrderBasicDAL.cs
*
* 功 能: 订单基本信息数据访问接口实现类
* 类 名: EC_OrderBasicDAL
*
* Ver 变更日期 负责人 变更内容
* ───────────────────────────────────
* V0.01 2013-4-23 10:09 吴崎均 更改InsertModel以及UpdateModel以与存储相匹配
* V0.02 2013-4-23 14:43 吴崎均 增加初始化构造
* V0.03 2013-4-23 18:01 吴崎均 增加更新订单状态方法
* V0.04 2013-4-24 11:26 吴崎均 增加方法:更新订单支付金额、更新订单支付状态,修改UpdateModel使之与存储对应(修改时不可修改ShowCode、SellerOrderId)
* V0.05 2013-5-3 17:32 吴崎均 增加分页方法(调用订单专用分页存储)
* V0.06 2013-5-10 16:33 吴崎均 增加方法:发起订单属性改变请求、执行订单属性改变请求
* V0.07 2013-5-11 13:21 吴崎均 增加方法:根据接手人查询属性变更请求集合
* V0.08 2013-5-11 14:13 吴崎均 增加方法:答复订单属性改变请求
* V0.09 2013-5-14 11:35 吴崎均 增加方法:根据卖家编号加载下一订单编号方法
* V0.10 2013-5-15 15:19 吴崎均 增加方法:根据编号获取订单信息
* V0.11 2013-5-17 11:07 吴崎均 增加方法:送货(含送货订单操作)
* V0.12 2013-5-20 9:47 吴崎均 增加方法:根据订单编号获取收货地址信息、获取订单操作
* V0.13 2013-5-21 9:30 吴崎均 修改方法:修改获取订单操作方法实现方式为调用存储
* V0.14 2013-5-29 14:33 吴崎均 增加方法:ReceiveMoneyToAccount(帐户收款)bug修正:UpdateOrderStateUnit 调用增加订单操作时未接收结果
* V0.15 2013-5-30 10:28 吴崎均 增加方法:预付款收/付款
* V0.16 2013-5-31 19:01 吴崎均 增加方法:根据订单编号确认收货
*
*
*
*/
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.Pay;
using CY.Model;
using CY.Infrastructure.Query;
using System.Transactions;
using CY.Model.Inquiry;
using CY.Infrastructure.Common;
namespace CY.SQLDAL
{
///
/// 订单基本信息数据访问接口实现类
///
public class EC_OrderBasicDAL : IEC_OrderBasicDAL
{
EC_OrderOperateDAL _eC_OrderOperateDAL = null;
EC_OrderExtendDAL _eC_OrderExtendDAL = null;
Pay_TradingSingleDAL _pay_TradingSingleDAL = null;
EC_AcceptWayByOrderDAL _eC_AcceptWayByOrderDAL = null;
EC_OrderPrintParameterDAL _eC_OrderPrintParameterDAL = null;
EC_MemberBasicDAL _eC_MemberBasicDAL = null;
OA_CorporateClientsDAL _oA_CorporateClientsDAL = null;
EC_OrderDialogueDAL _EC_OrderDialogueDAL = null;
private Database _dataBase = null;
#region 常量
///
/// 查询目标
///
const string SELECTTARGET = " t.* ";
///
/// 查询来源
///
const string FROMSOUCEBEFORE = " ( select ob.*,oe.DelayTime,oe.Productionprogress,oe.PrintPackDeliveryRequir,oe.PrintNum,oe.ExigencyCaseId,oe.SurplusPrintNum,ts.OnlineMoney,ts.LineMoney,ts.UsedCredit,ts.PayedMoney,pt.PrintName as PrintTypeName,otp.Name as OrderTypeName ,ost.Name as OrderStateName ,opt.Name as PayStateName,Parameter.[PrintParameter] as PrintParameter ,Staff.[Name] as BusinessManager" +
" from EC_OrderBasic as ob Inner Join Pay_TradingSingle as ts On ob.Keyid = ts.OrderId " +
" Inner Join EC_OrderExtend as oe On ob.Keyid=oe.Keyid " +
" Left Join [OA_Staff] as Staff On(oe.[BusinessManagerId]=Staff.Keyid) " +
" Left Join SysInquiry_PrintingType as pt On(ob.PrintTypeId=pt.Keyid) " +
" Left Join Sys_Dictionary as otp On (otp.DicType='EC_订单类型' And otp.MeanValue = ob.OrderTypeId ) " +
" Left Join Sys_Dictionary as ost On (ost.DicType='EC_订单状态' And ost.MeanValue = ob.OrderState ) " +
" Left Join Sys_Dictionary as opt On (opt.DicType='EC_订单支付状态' And opt.MeanValue = ob.PayState ) " +
" Left Join [EC_OrderPrintParameter] as Parameter On Parameter.[OrderId] = ob.[Keyid] " +
" Left Join [OA_CorporateClients] as CorporateClients On CorporateClients.[Keyid] = ob.[BuyerId] " +
" Left Join [OA_CustomerCommunications] as CustomerCommunications On CustomerCommunications.[Keyid] = ob.[BuyerId] " +
" where 0=0 ";
const string FROMSOUCEEND = ") as t ";
///
/// 分页默认排序字段
///
const string ORDERBY = " [DeliveryTime] DESC ";
#endregion
///
/// 初始化构造
///
///
public EC_OrderBasicDAL(Database database)
{
_dataBase = database;
}
///
/// 默认构造
///
public EC_OrderBasicDAL()
{
_dataBase = new Database();
}
#region 订单本表操作
///
/// 新增
///
///
///
public bool InserModel(Infrastructure.Domain.IAggregateRoot model)
{
Model.EC_OrderBasic trueModel = model as Model.EC_OrderBasic;
if (trueModel == null)
{
return false;
}
SqlParameter unitPricePar = null;
if (trueModel.UnitPrice.HasValue)
{
unitPricePar = new SqlParameter("@UnitPrice", trueModel.UnitPrice);
}
else
{
unitPricePar = new SqlParameter("@UnitPrice", DBNull.Value);
}
SqlParameter DeliveryTime = null;
if (trueModel.DeliveryTime.HasValue)
{
DeliveryTime = new SqlParameter("@DeliveryTime", trueModel.DeliveryTime);
}
else
{
DeliveryTime = new SqlParameter("@DeliveryTime", DBNull.Value);
}
IList sqlParms = new List()
{
new SqlParameter(){ ParameterName ="@Keyid", SqlDbType=System.Data.SqlDbType.Int, DbType=System.Data.DbType.Int32, Direction=ParameterDirection.Output},
new SqlParameter(){ ParameterName="@SellerOrderId",SqlDbType=System.Data.SqlDbType.VarChar,Size=25,DbType=System.Data.DbType.String, Direction=ParameterDirection.Output},
new SqlParameter("@OrderTypeId",trueModel.OrderTypeId),
new SqlParameter("@PrintTypeId",trueModel.PrintTypeId),
new SqlParameter("@DocumentName",trueModel.DocumentName),
DeliveryTime,//new SqlParameter("@DeliveryTime",trueModel.DeliveryTime),
new SqlParameter("@SellerId",trueModel.SellerId),
new SqlParameter("@BuyerId",trueModel.BuyerId),
new SqlParameter("@SellerName",trueModel.SellerName){SqlDbType=SqlDbType.VarChar,Size=200},
new SqlParameter("@BuyerName",trueModel.BuyerName){SqlDbType=SqlDbType.VarChar,Size=200},
unitPricePar,
new SqlParameter("@SumPrice",trueModel.SumPrice),
new SqlParameter("@Creater",trueModel.Creater),
new SqlParameter("@Operator",trueModel.Operator),
new SqlParameter("@Remark",trueModel.Remark??"") ,
new SqlParameter("@OutId",(trueModel.OutId==null ? "0":trueModel.OutId.ToString()))
};
try
{
_dataBase.Query("sp_EC_OrderBasic_Insert", CommandType.StoredProcedure, sqlParms.ToArray());
trueModel.Keyid = CY.Infrastructure.Common.MyConvert.ConvertToInt32(sqlParms[0].Value);
trueModel.SellerOrderId = CY.Infrastructure.Common.MyConvert.ConvertToString(sqlParms[1].Value);
return trueModel.Keyid.HasValue;
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 修改
///
///
///
public bool UpdateModel(Infrastructure.Domain.IAggregateRoot model)
{
Model.EC_OrderBasic trueModel = model as Model.EC_OrderBasic;
if (trueModel == null)
{
return false;
}
SqlParameter unitPricePar = null;
if (trueModel.UnitPrice.HasValue)
{
unitPricePar = new SqlParameter("@UnitPrice", trueModel.UnitPrice);
}
else
{
unitPricePar = new SqlParameter("@UnitPrice", DBNull.Value);
}
SqlParameter DeliveryTime = null;
if (trueModel.DeliveryTime.HasValue)
{
DeliveryTime = new SqlParameter("@DeliveryTime", trueModel.DeliveryTime);
}
else
{
DeliveryTime = new SqlParameter("@DeliveryTime", DBNull.Value);
}
IList sqlParms = new List()
{
new SqlParameter("@Keyid",trueModel.Keyid),
//new SqlParameter("@OrderTypeId",trueModel.OrderTypeId),
new SqlParameter("@PrintTypeId",trueModel.PrintTypeId),
new SqlParameter("@SellerId",trueModel.SellerId),
new SqlParameter("@SellerName",trueModel.SellerName),
new SqlParameter("@DocumentName",trueModel.DocumentName),
DeliveryTime,//new SqlParameter("@DeliveryTime",trueModel.DeliveryTime),
unitPricePar,
new SqlParameter("@SumPrice",trueModel.SumPrice),
new SqlParameter("@PayState",trueModel.PayState),
new SqlParameter("@Operator",trueModel.Operator),
new SqlParameter("@Remark",trueModel.Remark) ,
new SqlParameter("@CompledState",trueModel.CompledState ?? false) ,
new SqlParameter("@CompledTime",trueModel.CompledTime ?? DateTime.Now) ,
new SqlParameter("@CompledOperator",trueModel.CompledOperator ?? "") ,
new SqlParameter("@CompledRemarks",trueModel.CompledRemarks ?? "") ,
new SqlParameter("@OutId",(trueModel.OutId==null ? "0":trueModel.OutId.ToString()))
};
try
{
_dataBase.Query("sp_EC_OrderBasic_Update", CommandType.StoredProcedure, sqlParms.ToArray());
}
catch (Exception ex)
{
throw ex;
}
return true;
}
///
/// 删除
///
///
///
public bool DeleteModel(Infrastructure.Domain.IAggregateRoot model)
{
Model.EC_OrderBasic trueModel = model as Model.EC_OrderBasic;
if (trueModel == null)
{
return false;
}
IList sqlParms = new List()
{
new SqlParameter("@Keyid",trueModel.Keyid)
};
try
{
_eC_OrderOperateDAL = null == _eC_OrderOperateDAL ? new EC_OrderOperateDAL(_dataBase) : _eC_OrderOperateDAL;
bool isWin = _eC_OrderOperateDAL.InserModel(new EC_OrderOperate()
{
OrderId = trueModel.Keyid,
OperateType = 0,
Remark = "终止订单",
Operator = trueModel.Operator
});
if (!isWin)
return false;
else
;
_dataBase.Query("sp_EC_OrderBasic_DeleteRow", CommandType.StoredProcedure, sqlParms.ToArray());
}
catch (Exception ex)
{
throw ex;
}
return true;
}
///
/// 删除外协订单
///
///
///
public bool DeleteOutOrder(int OrderId)
{
IList sqlParms = new List()
{
new SqlParameter("@Keyid",OrderId)
};
try
{
_dataBase.Query("sp_EC_OrderBasic_DeleteOutOrder", CommandType.StoredProcedure, sqlParms.ToArray());
}
catch (Exception ex)
{
throw ex;
}
return true;
}
///
/// 删除外协订单
///
///
///
public bool UpdateOldOrderSurplusPrintNum(int OrderId)
{
IList sqlParms = new List()
{
new SqlParameter("@Keyid",OrderId)
};
string sql = " Update [EC_OrderExtend] Set [SurplusPrintNum]=[PrintNum] where [Keyid] = (select [OrderId] from [OA_OrderWorkListRelation] where [RelationTargetId] = @Keyid and [RelationTypeId]=4 ) ;Update [EC_OrderBasic] Set [OrderState]=2 where [Keyid] = (select [OrderId] from [OA_OrderWorkListRelation] where [RelationTargetId] = @Keyid and [RelationTypeId]=4 ) ";
try
{
_dataBase.ExecuteSql(sql, sqlParms.ToArray());
}
catch (Exception ex)
{
throw ex;
}
return true;
}
///
/// 分页查询
///
/// 查询对象
/// 分页对象
///
public IEnumerable SelectModelPage(Query query, Pagination pagination)
{
throw new Exception("方法未实现");
}
///
/// 分页查询(根据联系人和结束状态)
///
/// 分页对象
/// 查询参数
/// 查询结果 传入参数错误时结果为空
public IEnumerable SelectModelPage(Infrastructure.Query.Pagination pagination, Dictionary searchParam)
{
if (null == pagination)
return null;
else
{
}
IList sqlParms = new List()
{
new SqlParameter("@buyerId",DBNull.Value){SqlDbType=SqlDbType.UniqueIdentifier},
new SqlParameter("@sellerId",DBNull.Value){SqlDbType=SqlDbType.UniqueIdentifier},
new SqlParameter("@orderId",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=25},
new SqlParameter("@buyerName",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=50},
new SqlParameter("@createTimeBegin",DBNull.Value){SqlDbType=SqlDbType.Date},
new SqlParameter("@createTimeEnd",DBNull.Value){SqlDbType=SqlDbType.Date},
new SqlParameter("@printType",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@orderType",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@orderState",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@orderPayState",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@creater",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20},
new SqlParameter("@customerLevel",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@customerManager",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@businessManager",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@payType",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20},
new SqlParameter("@returnvisit",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20},
new SqlParameter("@appraise",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20},
new SqlParameter("@SellerName",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=50}
};
/*
* 拷贝参数
*/
if (null != searchParam && 0 < searchParam.Count)
{
foreach (int index in searchParam.Keys)
{
if (0 > index || index >= sqlParms.Count)
continue;
else
sqlParms[index].Value = searchParam[index];
}
}
else
{
}
sqlParms.Add(new SqlParameter()
{
ParameterName = "@pageIndex",
SqlDbType = SqlDbType.Int,
Value = pagination.PageIndex
});
sqlParms.Add(new SqlParameter()
{
ParameterName = "@pageSize",
SqlDbType = SqlDbType.Int,
Value = pagination.PageSize
});
sqlParms.Add(new SqlParameter()
{
ParameterName = "@pageCount",
SqlDbType = SqlDbType.Int,
Direction = ParameterDirection.Output
});
sqlParms.Add(new SqlParameter()
{
ParameterName = "@recordCount",
SqlDbType = SqlDbType.Int,
Direction = ParameterDirection.Output
});
IList result = null;
//执行分页存储
using (IDataReader reader = _dataBase.QueryDataReader("sp_EC_OrderBasic_Search", CommandType.StoredProcedure, sqlParms.ToArray()))
{
result = _dataBase.ReadDataToModel(reader);
}
if (result != null && result.Count > 0)
{
foreach (EC_OrderBasic ob in result)
{
if (IsComplainant(ob.Keyid.Value))
{
ob.IsComplainant = true;
}
}
}
/*获取页数与返回数据条数*/
int? resultValue = CY.Infrastructure.Common.MyConvert.ConvertToInt32(sqlParms[20].Value);
pagination.PageCount = resultValue.HasValue ? resultValue.Value : 0;
resultValue = CY.Infrastructure.Common.MyConvert.ConvertToInt32(sqlParms[21].Value);
pagination.RecordCount = resultValue.HasValue ? resultValue.Value : 0;
return result;
}
///
/// 分页查询(根据联系人和结束状态)-订单收款去除已冻结订单
///
/// 分页对象
/// 查询参数
/// 查询结果 传入参数错误时结果为空
public IEnumerable SelectModelPage_Financial(Infrastructure.Query.Pagination pagination, Dictionary searchParam)
{
if (null == pagination)
return null;
else
{
}
IList sqlParms = new List()
{
new SqlParameter("@buyerId",DBNull.Value){SqlDbType=SqlDbType.UniqueIdentifier},
new SqlParameter("@sellerId",DBNull.Value){SqlDbType=SqlDbType.UniqueIdentifier},
new SqlParameter("@orderId",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=25},
new SqlParameter("@buyerName",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=50},
new SqlParameter("@createTimeBegin",DBNull.Value){SqlDbType=SqlDbType.Date},
new SqlParameter("@createTimeEnd",DBNull.Value){SqlDbType=SqlDbType.Date},
new SqlParameter("@printType",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@orderType",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@orderState",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@orderPayState",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@creater",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20},
new SqlParameter("@customerLevel",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@customerManager",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@businessManager",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@payType",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20},
new SqlParameter("@returnvisit",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20},
new SqlParameter("@appraise",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20},
new SqlParameter("@SellerName",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=50}
};
/*
* 拷贝参数
*/
if (null != searchParam && 0 < searchParam.Count)
{
foreach (int index in searchParam.Keys)
{
if (0 > index || index >= sqlParms.Count)
continue;
else
sqlParms[index].Value = searchParam[index];
}
}
else
{
}
sqlParms.Add(new SqlParameter()
{
ParameterName = "@pageIndex",
SqlDbType = SqlDbType.Int,
Value = pagination.PageIndex
});
sqlParms.Add(new SqlParameter()
{
ParameterName = "@pageSize",
SqlDbType = SqlDbType.Int,
Value = pagination.PageSize
});
sqlParms.Add(new SqlParameter()
{
ParameterName = "@pageCount",
SqlDbType = SqlDbType.Int,
Direction = ParameterDirection.Output
});
sqlParms.Add(new SqlParameter()
{
ParameterName = "@recordCount",
SqlDbType = SqlDbType.Int,
Direction = ParameterDirection.Output
});
IList result = null;
//执行分页存储
using (IDataReader reader = _dataBase.QueryDataReader("sp_EC_OrderBasic_Financial_Search", CommandType.StoredProcedure, sqlParms.ToArray()))
{
result = _dataBase.ReadDataToModel(reader);
}
if (result != null && result.Count > 0)
{
foreach (EC_OrderBasic ob in result)
{
if (IsComplainant(ob.Keyid.Value))
{
ob.IsComplainant = true;
}
}
}
/*获取页数与返回数据条数*/
int? resultValue = CY.Infrastructure.Common.MyConvert.ConvertToInt32(sqlParms[20].Value);
pagination.PageCount = resultValue.HasValue ? resultValue.Value : 0;
resultValue = CY.Infrastructure.Common.MyConvert.ConvertToInt32(sqlParms[21].Value);
pagination.RecordCount = resultValue.HasValue ? resultValue.Value : 0;
return result;
}
///
/// 分页查询(根据联系人和结束状态)厂商订单,根据区域以及客户、业务经理查询
///
/// 分页对象
/// 查询参数
/// 查询结果 传入参数错误时结果为空
public IEnumerable SelectModelPage_Seller(Infrastructure.Query.Pagination pagination, Dictionary searchParam)
{
if (null == pagination)
return null;
else
{
}
StringBuilder ssss = new StringBuilder();
if (int.Parse(searchParam[18].ToString()) > 0)
{
var oA_Staffs = _dataBase.SelectModel(" * ", " [OA_Staff] ", "[Keyid]='" + searchParam[20] + "'").FirstOrDefault();
if (!string.IsNullOrEmpty(oA_Staffs.ManageCountry))
{
var sys_CitySites = _dataBase.SelectModel(" * ", " [Sys_CitySite] ").ToList();
var ManageCity = oA_Staffs.ManageCity.Split(',').Where(x => x != "").ToArray();
var ManageCountry = (oA_Staffs.ManageCountry + "," + oA_Staffs.ManageCountry1).Split(',').Where(x => x != "").ToArray();
int[] intManageCity = new int[ManageCity.Length];
for (int i = 0; i < ManageCity.Length; i++)
{
intManageCity[i] = int.Parse(ManageCity[i]);
}
int[] intManageCountry = new int[ManageCountry.Length];
for (int i = 0; i < ManageCountry.Length; i++)
{
intManageCountry[i] = int.Parse(ManageCountry[i]);
}
var city = sys_CitySites.Where(x => intManageCity.Contains(x.Keyid)).ToList();
var country = sys_CitySites.Where(x => intManageCountry.Contains(x.Keyid)).ToList();
StringBuilder citystring = new StringBuilder();
for (int i = 0; i < city.Count; i++)
{
if (i == city.Count - 1)
{
citystring.Append("'" + city[i].Name.ToString() + "'");
}
else
{
citystring.Append("'" + city[i].Name.ToString() + "',");
}
}
StringBuilder countrystring = new StringBuilder();
for (int i = 0; i < country.Count; i++)
{
if (i == country.Count - 1)
{
countrystring.Append("'" + country[i].Name.ToString() + "'");
}
else
{
countrystring.Append("'" + country[i].Name.ToString() + "',");
}
}
var resultsss = _dataBase.SelectModel(" axz.* ", " [OA_CorporateClients] axz join [OA_CustomerCommunications] bxz on axz.Keyid=bxz.Keyid ", " axz.FirmId ='" + searchParam[1] + "'and ( ( bxz.City in ( " + citystring.ToString() + ") and bxz.County in ( " + countrystring.ToString() + " ) )or axz.AccountManagerId='" + searchParam[20] + "' or axz.BusinessManagerId='" + searchParam[20] + "')").Select(x => x.Keyid).ToList();
//return null == result || result.Count < 1 ? null : result[0];
for (int i = 0; i < resultsss.Count; i++)
{
if (i == resultsss.Count - 1)
{
ssss.Append("'" + resultsss[i].ToString() + "'");
}
else
{
ssss.Append("'" + resultsss[i].ToString() + "',");
}
}
}
else
{
var resultsss = _dataBase.SelectModel(" axz.* ", " [OA_CorporateClients] axz join [OA_CustomerCommunications] bxz on axz.Keyid=bxz.Keyid ", " axz.FirmId ='" + searchParam[1] + "'and ( axz.AccountManagerId='" + searchParam[20] + "' or axz.BusinessManagerId='" + searchParam[20] + "')").Select(x => x.Keyid).ToList();
//return null == result || result.Count < 1 ? null : result[0];
for (int i = 0; i < resultsss.Count; i++)
{
if (i == resultsss.Count - 1)
{
ssss.Append("'" + resultsss[i].ToString() + "'");
}
else
{
ssss.Append("'" + resultsss[i].ToString() + "',");
}
}
}
if (string.IsNullOrEmpty(ssss.ToString()))
{
ssss.Append("'4354654657568345429890'");
}
}
else
{
var resultsss = _dataBase.SelectModel(" axz.* ", " [OA_CorporateClients] axz ", " axz.FirmId ='" + searchParam[1] + "' ").Select(x => x.Keyid).ToList();
//return null == result || result.Count < 1 ? null : result[0];
for (int i = 0; i < resultsss.Count; i++)
{
if (i == resultsss.Count - 1)
{
ssss.Append("'" + resultsss[i].ToString() + "'");
}
else
{
ssss.Append("'" + resultsss[i].ToString() + "',");
}
}
}
IList sqlParms = new List()
{
new SqlParameter("@buyerId1",DBNull.Value){SqlDbType=SqlDbType.UniqueIdentifier},
new SqlParameter("@sellerId",DBNull.Value){SqlDbType=SqlDbType.UniqueIdentifier},
new SqlParameter("@orderId",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=25},
new SqlParameter("@buyerName",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=50},
new SqlParameter("@createTimeBegin",DBNull.Value){SqlDbType=SqlDbType.Date},
new SqlParameter("@createTimeEnd",DBNull.Value){SqlDbType=SqlDbType.Date},
new SqlParameter("@printType",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@orderType",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@orderState",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@orderPayState",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@creater",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20},
new SqlParameter("@customerLevel",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@customerManager",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@businessManager",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@payType",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20},
new SqlParameter("@returnvisit",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20},
new SqlParameter("@appraise",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20},
new SqlParameter("@SellerName",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=50},
new SqlParameter("@IsStaff",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@StaffMemberId",DBNull.Value){SqlDbType=SqlDbType.UniqueIdentifier},
new SqlParameter("@StaffId",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@StaffName",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20},
new SqlParameter("@KaipiaoshenqingTimeStart",DBNull.Value){SqlDbType=SqlDbType.Date },
new SqlParameter("@KaipiaoshenqingTimeEnd",DBNull.Value){SqlDbType=SqlDbType.Date },
new SqlParameter("@Kaipiaoshenqing",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@Kehuqianshou",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@KaipiaoshenqingId",DBNull.Value){SqlDbType=SqlDbType.UniqueIdentifier},
new SqlParameter("@buyerId",DBNull.Value){SqlDbType=SqlDbType.UniqueIdentifier},
new SqlParameter("@DocumentName",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=50},
new SqlParameter("@Orderids",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=500},
};
/*
* 拷贝参数
*/
if (null != searchParam && 0 < searchParam.Count)
{
foreach (int index in searchParam.Keys)
{
if (0 > index || index >= sqlParms.Count || string.IsNullOrEmpty(searchParam[index].ToString()))
continue;
else
sqlParms[index].Value = searchParam[index];
}
}
else
{
}
sqlParms.Add(new SqlParameter()
{
ParameterName = "@pageIndex",
SqlDbType = SqlDbType.Int,
Value = pagination.PageIndex
});
sqlParms.Add(new SqlParameter()
{
ParameterName = "@pageSize",
SqlDbType = SqlDbType.Int,
Value = pagination.PageSize
});
sqlParms.Add(new SqlParameter()
{
ParameterName = "@pageCount",
SqlDbType = SqlDbType.Int,
Direction = ParameterDirection.Output
});
sqlParms.Add(new SqlParameter()
{
ParameterName = "@recordCount",
SqlDbType = SqlDbType.Int,
Direction = ParameterDirection.Output
});
sqlParms.Add(new SqlParameter()
{
ParameterName = "@CorporateClientsId",
SqlDbType = SqlDbType.VarChar,
Size=int.MaxValue,
Value = ssss.ToString()
});
IList result = null;
//执行分页存储
using (IDataReader reader = _dataBase.QueryDataReader("sp_EC_OrderBasic_Search_Seller_Ceshi", CommandType.StoredProcedure, sqlParms.ToArray()))
{
result = _dataBase.ReadDataToModel(reader);
}
if (result != null && result.Count > 0)
{
_eC_OrderPrintParameterDAL = new EC_OrderPrintParameterDAL(_dataBase);
foreach (EC_OrderBasic ob in result)
{
if (IsComplainant(ob.Keyid.Value))
{
ob.IsComplainant = true;
}
EC_OrderPrintParameter _eC_OrderPrintParameter = _eC_OrderPrintParameterDAL.GetModel(ob.Keyid.Value);
InquiryCommonModel _inquiryCommonModel = null;
if (null == _eC_OrderPrintParameter)
{
_inquiryCommonModel = new InquiryCommonModel();
}
else
{
_inquiryCommonModel = SerializationHelper.DeSerialize(typeof(InquiryCommonModel), _eC_OrderPrintParameter.PrintParameter) as InquiryCommonModel;
}
ob.PrintSizeName = _inquiryCommonModel.PrintSizeName;
}
}
/*获取页数与返回数据条数*/
int? resultValue = CY.Infrastructure.Common.MyConvert.ConvertToInt32(sqlParms[32].Value);
pagination.PageCount = resultValue.HasValue ? resultValue.Value : 0;
resultValue = CY.Infrastructure.Common.MyConvert.ConvertToInt32(sqlParms[33].Value);
pagination.RecordCount = resultValue.HasValue ? resultValue.Value : 0;
return result;
}
///
/// 统计订单金额
///
/// 分页对象
/// 查询参数
/// 查询结果 传入参数错误时结果为空
public EC_OrderBasic SumOrderMoney_receive(Infrastructure.Query.Pagination pagination, Dictionary searchParam)
{
try
{
if (null == pagination)
return null;
else
{
}
IList sqlParms = new List()
{
new SqlParameter("@buyerId",DBNull.Value){SqlDbType=SqlDbType.UniqueIdentifier},
new SqlParameter("@sellerId",DBNull.Value){SqlDbType=SqlDbType.UniqueIdentifier},
new SqlParameter("@orderId",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=25},
new SqlParameter("@buyerName",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=50},
new SqlParameter("@createTimeBegin",DBNull.Value){SqlDbType=SqlDbType.Date},
new SqlParameter("@createTimeEnd",DBNull.Value){SqlDbType=SqlDbType.Date},
new SqlParameter("@printType",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@orderType",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@orderState",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@orderPayState",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@creater",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20},
new SqlParameter("@customerLevel",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@customerManager",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@businessManager",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@payType",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20},
new SqlParameter("@returnvisit",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20},
new SqlParameter("@appraise",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20},
new SqlParameter("@SellerName",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=50}
};
/*
* 拷贝参数
*/
if (null != searchParam && 0 < searchParam.Count)
{
foreach (int index in searchParam.Keys)
{
if (0 > index || index >= sqlParms.Count)
continue;
else
{
if (searchParam[index].ToString() != null && searchParam[index].ToString() != "00000000-0000-0000-0000-000000000000")
{
sqlParms[index].Value = searchParam[index];
}
}
}
}
else
{
}
sqlParms.Add(new SqlParameter()
{
ParameterName = "@pageIndex",
SqlDbType = SqlDbType.Int,
Value = pagination.PageIndex
});
sqlParms.Add(new SqlParameter()
{
ParameterName = "@pageSize",
SqlDbType = SqlDbType.Int,
Value = pagination.PageSize
});
sqlParms.Add(new SqlParameter()
{
ParameterName = "@pageCount",
SqlDbType = SqlDbType.Int,
Direction = ParameterDirection.Output
});
sqlParms.Add(new SqlParameter()
{
ParameterName = "@recordCount",
SqlDbType = SqlDbType.Int,
Direction = ParameterDirection.Output
});
IList result = null;
//执行分页存储
using (IDataReader reader = _dataBase.QueryDataReader("sp_EC_OrderBasic_SumMoney_receive", CommandType.StoredProcedure, sqlParms.ToArray()))
{
result = _dataBase.ReadDataToModel(reader);
}
if (result != null && result.Count > 0)
{
return result[0];
}
else
{
return null;
}
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 统计订单金额
///
/// 分页对象
/// 查询参数
/// 查询结果 传入参数错误时结果为空
public EC_OrderBasic SumOrderMoney(Infrastructure.Query.Pagination pagination, Dictionary searchParam)
{
try
{
if (null == pagination)
return null;
else
{
}
IList sqlParms = new List()
{
new SqlParameter("@buyerId",DBNull.Value){SqlDbType=SqlDbType.UniqueIdentifier},
new SqlParameter("@sellerId",DBNull.Value){SqlDbType=SqlDbType.UniqueIdentifier},
new SqlParameter("@orderId",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=25},
new SqlParameter("@buyerName",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=50},
new SqlParameter("@createTimeBegin",DBNull.Value){SqlDbType=SqlDbType.Date},
new SqlParameter("@createTimeEnd",DBNull.Value){SqlDbType=SqlDbType.Date},
new SqlParameter("@printType",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@orderType",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@orderState",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@orderPayState",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@creater",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20},
new SqlParameter("@customerLevel",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@customerManager",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@businessManager",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@payType",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20},
new SqlParameter("@returnvisit",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20},
new SqlParameter("@appraise",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20},
new SqlParameter("@SellerName",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=50}
};
/*
* 拷贝参数
*/
if (null != searchParam && 0 < searchParam.Count)
{
foreach (int index in searchParam.Keys)
{
if (0 > index || index >= sqlParms.Count)
continue;
else
{
if (searchParam[index].ToString() != null && searchParam[index].ToString() != "00000000-0000-0000-0000-000000000000")
{
sqlParms[index].Value = searchParam[index];
}
}
}
}
else
{
}
sqlParms.Add(new SqlParameter()
{
ParameterName = "@pageIndex",
SqlDbType = SqlDbType.Int,
Value = pagination.PageIndex
});
sqlParms.Add(new SqlParameter()
{
ParameterName = "@pageSize",
SqlDbType = SqlDbType.Int,
Value = pagination.PageSize
});
sqlParms.Add(new SqlParameter()
{
ParameterName = "@pageCount",
SqlDbType = SqlDbType.Int,
Direction = ParameterDirection.Output
});
sqlParms.Add(new SqlParameter()
{
ParameterName = "@recordCount",
SqlDbType = SqlDbType.Int,
Direction = ParameterDirection.Output
});
IList result = null;
//执行分页存储
using (IDataReader reader = _dataBase.QueryDataReader("sp_EC_OrderBasic_SumMoney", CommandType.StoredProcedure, sqlParms.ToArray()))
{
result = _dataBase.ReadDataToModel(reader);
}
if (result != null && result.Count > 0)
{
return result[0];
}
else
{
return null;
}
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 分页查询外协订单(根据联系人和结束状态)
///
/// 分页对象
/// 查询参数
/// 查询结果 传入参数错误时结果为空
public IEnumerable SelectModelPage_Outsource(Infrastructure.Query.Pagination pagination, Dictionary searchParam)
{
if (null == pagination)
return null;
else
{
}
IList sqlParms = new List()
{
new SqlParameter("@buyerId",DBNull.Value){SqlDbType=SqlDbType.UniqueIdentifier},
new SqlParameter("@sellerId",DBNull.Value){SqlDbType=SqlDbType.UniqueIdentifier},
new SqlParameter("@orderId",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=25},
new SqlParameter("@buyerName",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=50},
new SqlParameter("@createTimeBegin",DBNull.Value){SqlDbType=SqlDbType.Date},
new SqlParameter("@createTimeEnd",DBNull.Value){SqlDbType=SqlDbType.Date},
new SqlParameter("@printType",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@orderType",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@orderState",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@orderPayState",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@creater",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20},
new SqlParameter("@customerLevel",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@customerManager",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@businessManager",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@payType",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20},
new SqlParameter("@returnvisit",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20},
new SqlParameter("@appraise",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20},
new SqlParameter("@Orderids",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=500}
};
/*
* 拷贝参数
*/
if (null != searchParam && 0 < searchParam.Count)
{
foreach (int index in searchParam.Keys)
{
if (0 > index || index >= sqlParms.Count)
continue;
else
{
if (searchParam[index].ToString() != null && searchParam[index].ToString() != "00000000-0000-0000-0000-000000000000")
{
sqlParms[index].Value = searchParam[index];
}
}
}
}
else
{
}
sqlParms.Add(new SqlParameter()
{
ParameterName = "@pageIndex",
SqlDbType = SqlDbType.Int,
Value = pagination.PageIndex
});
sqlParms.Add(new SqlParameter()
{
ParameterName = "@pageSize",
SqlDbType = SqlDbType.Int,
Value = pagination.PageSize
});
sqlParms.Add(new SqlParameter()
{
ParameterName = "@pageCount",
SqlDbType = SqlDbType.Int,
Direction = ParameterDirection.Output
});
sqlParms.Add(new SqlParameter()
{
ParameterName = "@recordCount",
SqlDbType = SqlDbType.Int,
Direction = ParameterDirection.Output
});
IList result = null;
//执行分页存储
using (IDataReader reader = _dataBase.QueryDataReader("sp_EC_OrderBasic_Outsource_Search", CommandType.StoredProcedure, sqlParms.ToArray()))
{
result = _dataBase.ReadDataToModel(reader);
}
if (result != null && result.Count > 0)
{
foreach (EC_OrderBasic ob in result)
{
if (IsComplainant(ob.Keyid.Value))
{
ob.IsComplainant = true;
}
}
}
/*获取页数与返回数据条数*/
int? resultValue = CY.Infrastructure.Common.MyConvert.ConvertToInt32(sqlParms[20].Value);
pagination.PageCount = resultValue.HasValue ? resultValue.Value : 0;
resultValue = CY.Infrastructure.Common.MyConvert.ConvertToInt32(sqlParms[21].Value);
pagination.RecordCount = resultValue.HasValue ? resultValue.Value : 0;
return result;
}
///
/// 判断是否投诉过
///
///
///
public bool IsComplainant(int orderId)
{
bool isComplainant = false;
string selectTarget = " a.* ";
string fromSouce = @" dbo.EC_OrderBasic a INNER JOIN Integrity_ComplainanInfo b ON a.Keyid=b.OrderId AND b.ComplaintsStatusId<>4";
string condition = " a.Keyid=" + orderId;
IList result = _dataBase.SelectModel(selectTarget, fromSouce, condition);
if (result != null && result.Count > 0)
{
isComplainant = true;
}
return isComplainant;
}
///
/// 生产安排分页查询
///
/// 分页对象
/// 查询参数
/// 查询结果 传入参数错误时结果为空
public IEnumerable SelectModelPageAg(Infrastructure.Query.Pagination pagination, Dictionary searchParam)
{
if (null == pagination)
return null;
else
{
}
IList sqlParms = new List()
{
new SqlParameter("@buyerId",DBNull.Value){SqlDbType=SqlDbType.UniqueIdentifier},
new SqlParameter("@sellerId",DBNull.Value){SqlDbType=SqlDbType.UniqueIdentifier},
new SqlParameter("@orderId",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=25},
new SqlParameter("@buyerName",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=50},
new SqlParameter("@createTimeBegin",DBNull.Value){SqlDbType=SqlDbType.Date},
new SqlParameter("@createTimeEnd",DBNull.Value){SqlDbType=SqlDbType.Date},
new SqlParameter("@printType",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@orderType",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@orderState",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@orderPayState",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@creater",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20},
new SqlParameter("@customerLevel",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@customerManager",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@businessManager",DBNull.Value){SqlDbType=SqlDbType.Int}
};
/*
* 拷贝参数
*/
if (null != searchParam && 0 < searchParam.Count)
{
foreach (int index in searchParam.Keys)
{
if (0 > index || index >= sqlParms.Count)
continue;
else
sqlParms[index].Value = searchParam[index];
}
}
else
{
}
sqlParms.Add(new SqlParameter()
{
ParameterName = "@pageIndex",
SqlDbType = SqlDbType.Int,
Value = pagination.PageIndex
});
sqlParms.Add(new SqlParameter()
{
ParameterName = "@pageSize",
SqlDbType = SqlDbType.Int,
Value = pagination.PageSize
});
sqlParms.Add(new SqlParameter()
{
ParameterName = "@pageCount",
SqlDbType = SqlDbType.Int,
Direction = ParameterDirection.Output
});
sqlParms.Add(new SqlParameter()
{
ParameterName = "@recordCount",
SqlDbType = SqlDbType.Int,
Direction = ParameterDirection.Output
});
IList result = null;
//执行分页存储
using (IDataReader reader = _dataBase.QueryDataReader("sp_AgOrderProduction_Search", CommandType.StoredProcedure, sqlParms.ToArray()))
{
result = _dataBase.ReadDataToModel(reader);
}
/*获取页数与返回数据条数*/
int? resultValue = CY.Infrastructure.Common.MyConvert.ConvertToInt32(sqlParms[16].Value);
pagination.PageCount = resultValue.HasValue ? resultValue.Value : 0;
resultValue = CY.Infrastructure.Common.MyConvert.ConvertToInt32(sqlParms[17].Value);
pagination.RecordCount = resultValue.HasValue ? resultValue.Value : 0;
return result;
}
///
/// 封签分页查询
///
/// 分页对象
/// 查询参数
/// 查询结果 传入参数错误时结果为空
public IEnumerable SelectModelPageSeal(Infrastructure.Query.Pagination pagination, Dictionary searchParam)
{
if (null == pagination)
return null;
else
{
}
IList sqlParms = new List()
{
new SqlParameter("@buyerId",DBNull.Value){SqlDbType=SqlDbType.UniqueIdentifier},
new SqlParameter("@sellerId",DBNull.Value){SqlDbType=SqlDbType.UniqueIdentifier},
new SqlParameter("@orderId",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=25},
new SqlParameter("@buyerName",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=50},
new SqlParameter("@createTimeBegin",DBNull.Value){SqlDbType=SqlDbType.Date},
new SqlParameter("@createTimeEnd",DBNull.Value){SqlDbType=SqlDbType.Date},
new SqlParameter("@printType",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@orderType",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@orderState",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@orderPayState",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@creater",DBNull.Value){SqlDbType=SqlDbType.VarChar,Size=20},
new SqlParameter("@customerLevel",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@customerManager",DBNull.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@businessManager",DBNull.Value){SqlDbType=SqlDbType.Int}
};
/*
* 拷贝参数
*/
if (null != searchParam && 0 < searchParam.Count)
{
foreach (int index in searchParam.Keys)
{
if (0 > index || index >= sqlParms.Count)
continue;
else
sqlParms[index].Value = searchParam[index];
}
}
else
{
}
sqlParms.Add(new SqlParameter()
{
ParameterName = "@pageIndex",
SqlDbType = SqlDbType.Int,
Value = pagination.PageIndex
});
sqlParms.Add(new SqlParameter()
{
ParameterName = "@pageSize",
SqlDbType = SqlDbType.Int,
Value = pagination.PageSize
});
sqlParms.Add(new SqlParameter()
{
ParameterName = "@pageCount",
SqlDbType = SqlDbType.Int,
Direction = ParameterDirection.Output
});
sqlParms.Add(new SqlParameter()
{
ParameterName = "@recordCount",
SqlDbType = SqlDbType.Int,
Direction = ParameterDirection.Output
});
IList result = null;
//执行分页存储
using (IDataReader reader = _dataBase.QueryDataReader("sp_AgOrderSeal_Search", CommandType.StoredProcedure, sqlParms.ToArray()))
{
result = _dataBase.ReadDataToModel(reader);
}
/*获取页数与返回数据条数*/
int? resultValue = CY.Infrastructure.Common.MyConvert.ConvertToInt32(sqlParms[16].Value);
pagination.PageCount = resultValue.HasValue ? resultValue.Value : 0;
resultValue = CY.Infrastructure.Common.MyConvert.ConvertToInt32(sqlParms[17].Value);
pagination.RecordCount = resultValue.HasValue ? resultValue.Value : 0;
return result;
}
///
/// 作业本送货分页查询
///
///
///
public IEnumerable SelectModelPageWorkBook(Infrastructure.Query.Pagination pagination, Guid _MemberID, string txtBeginDate, string txtEndDate, string txtOrderId, string txtSearchyjname, string selCustormerManager, string selBusinessManager, string selOrderStates)
{
try
{
string condition = " ob.PrintTypeId = 37 ";
if (_MemberID != Guid.Empty)
condition += " and ob.SellerId = '" + _MemberID + "'";
if (!string.IsNullOrEmpty(txtBeginDate))
condition += string.Format(" and CAST(ob.CreateTime AS DATE) >='{0}'", txtBeginDate);
if (!string.IsNullOrEmpty(txtEndDate))
{
var EndDate = txtEndDate.ToDateTime2().Value.AddDays(1).ToShortDateString();
condition += string.Format(" and CAST(ob.CreateTime AS DATE) <='{0}'", EndDate);
}
if (!string.IsNullOrEmpty(txtOrderId))
condition += " and ob.SellerOrderId like '%" + txtOrderId + "%'";
if (!string.IsNullOrEmpty(txtSearchyjname))
condition += " and ob.DocumentName like '%" + txtSearchyjname + "%'";
if (!string.IsNullOrEmpty(selCustormerManager))
condition += " and oe.CustomerManagerId = '" + selCustormerManager + "'";
if (!string.IsNullOrEmpty(selBusinessManager))
condition += " and oe.BusinessManagerId = '" + selBusinessManager + "'";
if (!string.IsNullOrEmpty(selOrderStates))
condition += " and ob.OrderState = '" + selOrderStates + "'";
return _dataBase.SelectModelPage(pagination, " ob.*,oe.shifouDelivery,oe.DeliveryOrderId,oe.KaipiaoshenqingCreater,oe.KaipiaoshenqingTime,oe.KaipiaoquerenCreater,oe.KaipiaoquerenTime,oe.Kehuqianshou,oe.KehuqianshouCreater,oe.KehuqianshouTime ,oe.Quchudingdan,oe.QuchudingdanCreater,oe.QuchudingdanTime,oe.PrintPackDeliveryRequir,oe.PrintNum,oe.ExigencyCaseId,opy.Name as yssldw ", " EC_OrderBasic as ob Inner Join EC_OrderExtend as oe On(ob.Keyid=oe.Keyid) Left Join Sys_Dictionary as opy On (opy.DicType='印刷单位' And opy.MeanValue = oe.printunit ) ", " ob.Keyid DESC ", " Keyid DESC ", condition);
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 单个查询
///
///
///
public IEnumerable SelectAllModel(Infrastructure.Query.Query query)
{
throw new NotImplementedException();
}
///
/// 根据订单编号获取订单
///
/// 订单编号
///
public EC_OrderBasic GetOrderById(int orderId)
{
if (1 < orderId)
return null;
else
{
}
IList result = _dataBase.SelectModel(" * ", "EC_OrderBasic ", string.Format(" Keyid = {0}", orderId));
return null == result || result.Count < 1 ? null : result[0];
}
///
/// 根据客户ID和订单支付状态获取订单列表
///
/// 卖家ID
///
public IList GetOrderById(Guid BuyerId, int PayState)
{
IList result = new List();
result = _dataBase.SelectModel(" * ", "EC_OrderBasic ", string.Format(" BuyerId = '{0}' and PayState!={1}", BuyerId,PayState));
return result;
}
///
/// 受理订单
///
/// 订单编号
/// 受理佣金(受理订单时站方收取的服务费)
///
public bool AcceptOrder(int orderId, double commission)
{
if (0 >= orderId || 0 >= orderId)
{
return false;
}
else
{
}
if (0 >= commission || 0 >= commission)
{
return false;
}
else
{
}
IList sqlParms = new List()
{
new SqlParameter("@orderId",orderId){SqlDbType=SqlDbType.Int},
new SqlParameter("@commission",commission){SqlDbType=SqlDbType.Float,DbType=DbType.Double},
new SqlParameter(){ParameterName="@returnState",Direction=ParameterDirection.Output,SqlDbType=SqlDbType.Int,DbType=DbType.Int32}
};
try
{
_dataBase.Query("sp_Order_Accept", CommandType.StoredProcedure, sqlParms.ToArray());
return 1.Equals(sqlParms[2].Value);
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 锁单订单
///
/// 订单编号
/// 操作人
///
public bool SuodingOrder(int orderId, string operater)
{
if (0 >= orderId || 0 >= orderId)
{
return false;
}
else
{
}
IList sqlParms = new List()
{
new SqlParameter("@SuodanState",true),
new SqlParameter("@SuodanTime",DateTime.Now),
new SqlParameter("@SuodanOperator",operater),
new SqlParameter("@Keyid",orderId),
};
IList sqlParms1 = new List()
{
new SqlParameter("@Keyid",orderId),
};
try
{
string sql = "Update EC_OrderBasic Set [SuodanState]=@SuodanState,[SuodanTime]=@SuodanTime,[SuodanOperator]=@SuodanOperator where [Keyid] =@Keyid ";
_dataBase.ExecuteSql(sql, sqlParms.ToArray());
string sql1 = "Update CoreCmsPlanOrder Set [status]=2 where [orderkeyid] =@Keyid ";
_dataBase.ExecuteSql(sql1, sqlParms1.ToArray());
}
catch (Exception ex)
{
throw ex;
}
return true;
}
///
/// 批量受理订单
///
///
///
///
public bool AcceptOrderAll(string orderIds, double commission)
{
IList orderIdList = new List();
string[] orderIdArry = orderIds.Split(',');
foreach (string orderIdStr in orderIdArry)
{
if (!string.IsNullOrEmpty(orderIdStr))
{
orderIdList.Add(int.Parse(orderIdStr));
}
}
bool isSuccess = true;
using (TransactionScope scope = new TransactionScope())
{
foreach (int orderId in orderIdList)
{
isSuccess = AcceptOrder(orderId, commission);
if (!isSuccess)
break;
}
if (isSuccess)
{
scope.Complete();
}
}
return isSuccess;
}
///
/// 根据卖家编号加载下一订单编号方法
///
/// 卖家编号
///
public string LoadOrderIdBySellerId(Guid memberId)
{
if (Guid.Empty == memberId)
{
return string.Empty;
}
else
{
}
IList sqlParms = new List()
{
new SqlParameter("@memberid",memberId){SqlDbType=SqlDbType.UniqueIdentifier}
};
try
{
using (IDataReader reader = _dataBase.QueryDataReader("sp_EC_OrderBasic_GetOrderId", CommandType.StoredProcedure, sqlParms.ToArray()))
{
return reader.Read() ? reader[0] as string : string.Empty;
}
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 根据编号批量删除数据
///
/// 当前操作人
/// 编号集合
///
public bool DeleteDataByIds(string currentOperator, params int[] ids)
{
return Database.DeleteDataByIds(this, currentOperator, ids);
}
///
/// 根据编号获取订单信息
///
/// 订单唯一编号
///
public EC_OrderBasic SelectModelById(int orderId)
{
if (0 >= orderId)
{
return null;
}
else
{
}
List result = null;
try
{
using (IDataReader reader = _dataBase.QueryDataReader("sp_EC_OrderBasic_SelectById", CommandType.StoredProcedure, new SqlParameter("@orderId", orderId)
{
SqlDbType = SqlDbType.Int
}))
{
result = _dataBase.ReadDataToModel(reader);
}
}
catch (Exception ex)
{
throw ex;
}
return null == result || result.Count == 0 ? null : result[0];
}
///
/// 根据订单编号获取订单
///
/// 订单编号
///
public IEnumerable GetOrderByIds(string orderIds)
{
//return _eC_OrderBasicDAL.SelectModelById(orderId);
IList result = _dataBase.SelectModel(" ob.*,ts.OnlineMoney,ts.LineMoney,ts.UsedCredit,ts.PayedMoney ", "EC_OrderBasic as ob Inner Join Pay_TradingSingle as ts On ( ob.Keyid = ts.OrderId ) ", string.Format(" ob.Keyid in ({0})", orderIds));
return null == result || result.Count < 1 ? null : result;
}
///
/// 根据订单编号获取自动外协订单
///
/// 订单编号
///
public EC_OrderBasic SelectOutOrderById(int orderId)
{
if (1 > orderId)
return null;
else
{
}
IList result = _dataBase.SelectModel(" b.* ", " dbo.EC_OrderBasic AS a INNER JOIN dbo.EC_OrderBasic AS b ON a.OutId =b.Keyid ", string.Format(" a.Keyid = {0}", orderId));
return null == result || result.Count < 1 ? null : result[0];
}
///
/// 获取请求
///
///
///
public EC_OrderDialogue SelecEC_OrderDialogueById(Guid Keyid)
{
try
{
IList result = _dataBase.SelectModel(" * ", " EC_OrderDialogue ", string.Format(" Keyid = '{0}'", Keyid));
return null == result || result.Count < 1 ? null : result[0];
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 获取自动外协的请求
///
///
///
public EC_OrderDialogue SelecEC_OrderDialogueById_Out(int? orderid)
{
try
{
IList result = _dataBase.SelectModel(" * ", " EC_OrderDialogue ", string.Format(" IsAllow IS NULL AND TargetOrder = '{0}'", orderid));
return null == result || result.Count < 1 ? null : result[0];
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 根据自动外协订单编号获取来源订单
///
/// 订单编号
///
public EC_OrderBasic SelectFromOutOrderById(int orderId)
{
if (1 > orderId)
return null;
else
{
}
IList result = _dataBase.SelectModel(" * ", " dbo.EC_OrderBasic ", string.Format(" OutId = {0}", orderId));
return null == result || result.Count < 1 ? null : result[0];
}
///
/// 修改订单状态(无事务,仅内部使用)
///
/// 订单操作
///
internal bool UpdateOrderStateUnit(EC_OrderOperate orderOperate)
{
if (null == orderOperate)
return false;
else
{
}
if (!orderOperate.OrderId.HasValue || 0 >= orderOperate.OrderId)
{
return false;
}
else
{
}
_eC_OrderOperateDAL = null == _eC_OrderOperateDAL ? new EC_OrderOperateDAL(_dataBase) : _eC_OrderOperateDAL;
try
{
bool isWin = false;
if (orderOperate.OperateType == 0)
{
return DeleteModel(new EC_OrderBasic()
{
Keyid = orderOperate.OrderId,
Operator = orderOperate.Operator
});
}
else
;
isWin = _eC_OrderOperateDAL.InserModel(orderOperate);
if (!isWin)
return false;
else
;
IList sqlParms = new List()
{
new SqlParameter("@orderId",orderOperate.OrderId.Value),
new SqlParameter("@stateId",orderOperate.OperateType),
new SqlParameter(){ParameterName="@returnValue",Direction=ParameterDirection.ReturnValue,SqlDbType=SqlDbType.Int,DbType=DbType.Int32}
};
_dataBase.Query("sp_Order_UpdateOrderState", CommandType.StoredProcedure, sqlParms.ToArray());
return isWin = 1.Equals(sqlParms[2].Value);
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 根据新增订单操作,并修改订单状态
///
///
///
public bool UpdateOrderState(EC_OrderOperate orderOperate)
{
if (null == orderOperate)
return false;
else
;
using (TransactionScope tran = new TransactionScope())
{
_eC_OrderOperateDAL = new EC_OrderOperateDAL(_dataBase);
try
{
bool isWin = false;
if (orderOperate.OperateType == 0)
{
return DeleteModel(new EC_OrderBasic()
{
Keyid = orderOperate.OrderId,
Operator = orderOperate.Operator
});
}
else
;
isWin = _eC_OrderOperateDAL.InserModel(orderOperate);
if (!isWin)
return false;
else
;
IList sqlParms = new List()
{
new SqlParameter("@orderId",orderOperate.OrderId.Value),
new SqlParameter("@stateId",orderOperate.OperateType),
new SqlParameter(){ParameterName="@returnValue",Direction=ParameterDirection.ReturnValue,SqlDbType=SqlDbType.Int,DbType=DbType.Int32}
};
_dataBase.Query("sp_Order_UpdateOrderState1", CommandType.StoredProcedure, sqlParms.ToArray());
isWin = 1.Equals(sqlParms[2].Value);
if (isWin)
{
tran.Complete();
}
return isWin;
}
catch (Exception ex)
{
throw ex;
}
}
}
///
/// 修改订单状态(非支付状态且不可修改为未受理和已受理)
///
/// 订单操作
///
public bool UpdateOrderState(params EC_OrderOperate[] orderOperates)
{
if (null == orderOperates)
return false;
else
;
_eC_OrderOperateDAL = new EC_OrderOperateDAL(_dataBase);
using (TransactionScope tran = new TransactionScope())
{
int i = -1;
bool isWin = false;
while (++i < orderOperates.Length)
{
if (isWin = UpdateOrderStateUnit(orderOperates[i]))
;
else
{
return isWin;
}
}
tran.Complete();
return isWin;
}
}
///
/// 更新订单支付状态
///
/// 订单编号
///
public bool UpdateOrderPayState(int orderId)
{
SqlParameter[] sqlParms = new SqlParameter[]
{
new SqlParameter(){ParameterName="@returnState", Direction=ParameterDirection.Output,SqlDbType=SqlDbType.Int},
new SqlParameter("@orderId",orderId)
};
_dataBase.Query("sp_Order_UpdateOrderPayState", CommandType.StoredProcedure, sqlParms);
return 1.Equals(sqlParms[0].Value);
}
///
/// 更新订单支付金额
///
/// 订单编号
/// 支付方式(1:收款、-1:付款)
/// 支付金额
/// 使用授信(默认0)
///
public bool UpdateOrderPayedMoney(int orderId, int payWay, decimal paymoney, decimal usedCredit = 0)
{
SqlParameter[] sqlParms = new SqlParameter[]
{
new SqlParameter(){ParameterName="@returnState", Direction=ParameterDirection.Output,SqlDbType=SqlDbType.Int,DbType=DbType.Int32},
new SqlParameter("@orderId",orderId){SqlDbType=SqlDbType.Int},
new SqlParameter("@payWay",payWay){SqlDbType=SqlDbType.Int},
new SqlParameter("@payedMoney",paymoney){SqlDbType=SqlDbType.Money ,Size=8},
new SqlParameter("@usedCredit",usedCredit){SqlDbType=SqlDbType.Money,Size=8 }
};
_dataBase.Query("sp_Order_UpdatePayedMoney", CommandType.StoredProcedure, sqlParms);
int? returnState = CY.Infrastructure.Common.MyConvert.ConvertToInt32(sqlParms[0].Value);
return 1.Equals(sqlParms[0].Value);
}
///
/// 收款(线下转账、现金)
///
/// 订单编号
/// 操作记录
///
public bool ReceiveMoneyToAccount(int orderId, OA_FirmAccountRecord firmAccountRecord)
{
bool isWin = false;
if (0 >= orderId || null == firmAccountRecord || !firmAccountRecord.AccountId.HasValue || !firmAccountRecord.SubjectId.HasValue || !firmAccountRecord.Money.HasValue)
return false;
else
;
if (0 >= firmAccountRecord.AccountId.Value || 0 >= firmAccountRecord.SubjectId.Value || 0 > firmAccountRecord.Money.Value)
return false;
else
;
try
{
OA_FirmAccountRecordDAL oA_FirmAccountRecordDAL = new OA_FirmAccountRecordDAL(_dataBase);
using (TransactionScope tran = new TransactionScope())
{
if (firmAccountRecord.Money.Value > 0)
{
//收款到账户并记录收支记录
isWin = oA_FirmAccountRecordDAL.OrderReceivables(firmAccountRecord.AccountId, firmAccountRecord.Money, firmAccountRecord.SubjectId, firmAccountRecord.LastUpdateTime, firmAccountRecord.PaymentUnit, firmAccountRecord.Operator);
if (!isWin)
{
return isWin;
}
else
;
}
//更新订单支付金额
isWin = this.UpdateOrderPayedMoney(orderId, -1, firmAccountRecord.Money.Value);
if (!isWin)
{
return isWin;
}
else
;
//更新订单状态
isWin = this.UpdateOrderPayState(orderId);
if (!isWin)
{
return isWin;
}
else
;
tran.Complete();
}
}
catch (Exception ex)
{
throw ex;
}
return isWin;
}
///
/// 收款(线下转账、现金)
///
/// 订单编号
/// 操作记录
///
public bool ReceiveMoneyToQueren(int orderId, OA_FirmAccountRecord firmAccountRecord)
{
bool isWin = false;
if (0 >= orderId || !firmAccountRecord.Money.HasValue)
return false;
else
;
if ( 0 > firmAccountRecord.Money.Value)
return false;
else
;
try
{
OA_FirmAccountRecordDAL oA_FirmAccountRecordDAL = new OA_FirmAccountRecordDAL(_dataBase);
using (TransactionScope tran = new TransactionScope())
{
//更新订单支付金额
isWin = this.UpdateOrderPayedMoney(orderId, -1, firmAccountRecord.Money.Value);
if (!isWin)
{
return isWin;
}
else
;
//更新订单状态
isWin = this.UpdateOrderPayState(orderId);
if (!isWin)
{
return isWin;
}
else
;
tran.Complete();
}
}
catch (Exception ex)
{
throw ex;
}
return isWin;
}
///
/// 收款(外协预付款、客户预付款)
///
/// 卖家
/// 买家
/// 订单编号
/// 金额
/// 操作类型编号(2:预付款,3普通付款)
/// 支付科目(订单付款,外协付款)
/// 操作人
///
public bool ReceiveMoney(Guid sellerId, Guid buyerId, int orderId, decimal money, int operatTypeId, string subjectName, string currentOperator)
{
bool isWin = false;
if (0 >= orderId || 0 > money || string.IsNullOrEmpty(subjectName) || string.IsNullOrEmpty(currentOperator))
return false;
else
;
try
{
using (TransactionScope tran = new TransactionScope())
{
if (money > 0)
{
OA_CorporateClientsDAL oA_CorporateClientsDAL = new OA_CorporateClientsDAL(_dataBase);
//从预付款扣除金额
isWin = oA_CorporateClientsDAL.OrderReciveMoney(buyerId, sellerId, money, subjectName, currentOperator, operatTypeId);
if (!isWin)
{
return isWin;
}
else
;
}
//更新订单支付金额
isWin = this.UpdateOrderPayedMoney(orderId, -1, money);
if (!isWin)
{
return isWin;
}
else
;
//更新订单状态
isWin = this.UpdateOrderPayState(orderId);
if (!isWin)
{
return isWin;
}
else
;
tran.Complete();
}
}
catch (Exception ex)
{
throw ex;
}
return isWin;
}
///
/// 根据编号获取订单列表
///
///
///
///
public IEnumerable GetEC_OrderBasicListByKeyid(string Keyids, Guid FirmId)
{
try
{
if (string.IsNullOrEmpty(Keyids))
return null;//错误数据返会空
IList result = _dataBase.SelectModel("*", "EC_OrderBasic", string.Format(" Keyid in ({0}) order by SellerOrderId DESC ", Keyids)) as IList;//执行查询 and SellerId ='{1}' , FirmId
return result;//返回结果
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 订单完工
///
///
///
///
public bool CompletedOrderList(List m_EC_OrderOperateList, List m_EC_OrderBasicList)
{
if (null == m_EC_OrderOperateList || null == m_EC_OrderBasicList)
return false;
else
;
_eC_OrderOperateDAL = new EC_OrderOperateDAL(_dataBase);
using (TransactionScope tran = new TransactionScope())
{
int i = -1;
bool isWin = false;
while (++i < m_EC_OrderOperateList.Count)
{
if (isWin = UpdateOrderStateUnit(m_EC_OrderOperateList[i]))
;
else
return isWin;
}
i = -1;
while (++i < m_EC_OrderBasicList.Count)
{
if (isWin = UpdateModel(m_EC_OrderBasicList[i]))
;
else
return isWin;
}
tran.Complete();
return isWin;
}
}
#endregion
///
/// 分页查询
///
///
///
///
public IEnumerable SelectModelPage_weiwangong(Infrastructure.Query.Query query, Infrastructure.Query.Pagination pagination)
{
if (null == pagination || null == query || null == query.Criteria || 1 > query.Criteria.Count)
return null;
//query.Criteria 首个元素必须是排序字段,其值为结果排序字段
int maxParamIndex = query.Criteria.Count - 1;//最大索引
string[] orderbys = new string[] { ORDERBY };
string resultOrderBy = "";//结果集排序方式
if ("@orderBy".Equals(query.Criteria[maxParamIndex].PropertyName))
{
orderbys = string.Format("{0}", query.Criteria[maxParamIndex].Value).Split(',');
resultOrderBy = 1 == orderbys.Length ? resultOrderBy : orderbys[1];
}
string fromSouce = string.Format("{0}{1}{2}", FROMSOUCEBEFORE, query.Criteria[0].Value, FROMSOUCEEND);//拼装条件
return _dataBase.SelectModelPage(pagination, SELECTTARGET, fromSouce, orderbys[0], resultOrderBy);
}
#region 外表操作
///
/// 支付订单
///
/// 订单编号
/// 支付请求
///
public bool PayOrder(int orderId, Pay_Request payRequest, double commission, decimal OutAllMoney = 0)
{
try
{
Pay_PaymentAccountDAL pay_PaymentAccountDAL = new Pay_PaymentAccountDAL(_dataBase);
if (!pay_PaymentAccountDAL.Pay(payRequest))//执行支付
{
return false;//支付不成功则操作失败
}
payRequest.UsedCredit = payRequest.UsedCredit.HasValue ? payRequest.UsedCredit : 0;
if (payRequest.Paymoney < 0 || payRequest.UsedCredit < 0)
{
return false;
}
bool IsSuccess = this.UpdateOrderPayedMoney(orderId, 1, payRequest.Paymoney, payRequest.UsedCredit.Value);//更新已支付金额 payway 为-1为收款 1为付款
EC_OrderBasic orderBasic = SelectModelById(orderId);
if (0 < commission && orderBasic.OrderState == 1 && orderBasic.OrderTypeId == -1)
{
pay_PaymentAccountDAL.MergeBufferMoneyByMemberId(orderBasic.SellerId);
IsSuccess = this.AcceptOrder(orderBasic.Keyid.Value, commission);
}
#region 自动外协
//询价订单切支付完毕才可自动外协
if (IsSuccess && orderBasic.OrderTypeId == 0 && (orderBasic.TradingSingle.OnlineMoney + orderBasic.TradingSingle.UsedCredit) >= orderBasic.SumPrice && OutAllMoney > 0)
{
_eC_OrderExtendDAL = new EC_OrderExtendDAL(_dataBase);
_pay_TradingSingleDAL = new Pay_TradingSingleDAL(_dataBase);
_eC_AcceptWayByOrderDAL = new EC_AcceptWayByOrderDAL(_dataBase);
_eC_OrderOperateDAL = new EC_OrderOperateDAL(_dataBase);
_eC_MemberBasicDAL = new EC_MemberBasicDAL(_dataBase);
_oA_CorporateClientsDAL = new OA_CorporateClientsDAL(_dataBase);
_eC_OrderPrintParameterDAL = new EC_OrderPrintParameterDAL(_dataBase);
//自动外协处理
EC_MemberBasic m_EC_MemberBasic = _eC_MemberBasicDAL.GetMemberByMemberId(orderBasic.SellerId);
Pay_PaymentAccount m_Pay_PaymentAccount = pay_PaymentAccountDAL.SelectModleByMemberId(m_EC_MemberBasic.MemberId);
if (m_EC_MemberBasic != null && ((m_Pay_PaymentAccount.SurplusMoney + m_Pay_PaymentAccount.SurplusCredit) > OutAllMoney))
{
OA_CorporateClients m_OA_CorporateClients = _oA_CorporateClientsDAL.GetDefaultOutFirm(orderBasic.SellerId);//外协厂商
//需付受理佣金(订单受理佣金>0时直接调用受理订单进行受理)
if (0 < commission && orderBasic.OrderState == 1 && m_OA_CorporateClients != null)
{
pay_PaymentAccountDAL.MergeBufferMoneyByMemberId(orderBasic.SellerId);
IsSuccess = this.AcceptOrder(orderBasic.Keyid.Value, commission);
}
if (IsSuccess && m_OA_CorporateClients != null && orderBasic.OrderTypeId == 0 && orderBasic.BuyerId != m_OA_CorporateClients.FirmId && OutAllMoney > 0)
{
Pay_PaymentAccount m_Pay_PaymentAccount_Out = pay_PaymentAccountDAL.SelectModleByMemberId(m_OA_CorporateClients.FirmId);
Pay_Request payRequest_Out = new Pay_Request();
payRequest_Out.BalanceAccount = 18;
payRequest_Out.Payeeid = payRequest.Payeeid;
payRequest_Out.Payerid = m_Pay_PaymentAccount.Keyid.Value;
payRequest_Out.Paymoney = OutAllMoney;
payRequest_Out.Subject = "";//string.Format(CY.Infrastructure.Common.UtilConst.ORDER_PAY_SUBJECT_FORMT, eC_OrderBasic.Keyid, eC_OrderBasic.SellerOrderId);
payRequest_Out.UsedCredit = 0;
EC_OrderBasic OLD_eC_OrderBasic = SelectModelById(orderBasic.Keyid.Value);
EC_OrderBasic OLD_eC_OrderBasic2 = SelectModelById(orderBasic.Keyid.Value);
EC_OrderExtend OrderExtendNew = new EC_OrderExtend();
EC_OrderBasic m_EC_OrderBasicNew = new EC_OrderBasic();
EC_AcceptWayByOrder m_EC_AcceptWayByOrderNew = new EC_AcceptWayByOrder();
EC_OrderPrintParameter m_EC_OrderPrintParameterNew = new EC_OrderPrintParameter();
m_EC_OrderBasicNew = OLD_eC_OrderBasic;
OrderExtendNew = OLD_eC_OrderBasic.OrderExtend;
m_EC_AcceptWayByOrderNew = _eC_AcceptWayByOrderDAL.SelectModelByTargetId(orderBasic.Keyid);
m_EC_OrderPrintParameterNew = _eC_OrderPrintParameterDAL.GetModel(orderBasic.Keyid.Value);
m_EC_OrderBasicNew.BuyerId = m_EC_MemberBasic.MemberId;
m_EC_OrderBasicNew.BuyerName = m_EC_MemberBasic.Name;
m_EC_OrderBasicNew.SellerId = m_OA_CorporateClients.FirmId;
m_EC_OrderBasicNew.SellerName = m_OA_CorporateClients.OutVendorName;
m_EC_OrderBasicNew.OrderTypeId = 2;
m_EC_OrderBasicNew.SumPrice = OutAllMoney;
m_EC_OrderBasicNew.UnitPrice = null;//价格比率
m_EC_OrderBasicNew.OrderExtend = OrderExtendNew;
EC_OrderOperate m_EC_OrderOperate = new EC_OrderOperate();
m_EC_OrderOperate.LastUpdateTime = DateTime.Now;
m_EC_OrderOperate.OperateType = 3;
m_EC_OrderOperate.Operator = m_EC_MemberBasic.ShortName;
m_EC_OrderOperate.OrderId = OLD_eC_OrderBasic.Keyid;
m_EC_OrderOperate.Remark = "";
m_EC_OrderBasicNew.TradingSingle = GetPay_TradingSingleById(orderBasic.Keyid.Value);
m_EC_OrderBasicNew.TradingSingle.PayerId = m_EC_OrderBasicNew.BuyerId;//设置买家为当前收货用户
m_EC_OrderBasicNew.TradingSingle.PayeeId = m_EC_OrderBasicNew.SellerId;//设置卖家为秒杀业务的发布人
m_EC_OrderBasicNew.TradingSingle.LineMoney = 0;
m_EC_OrderBasicNew.TradingSingle.TradingMoney = OutAllMoney;
m_EC_OrderBasicNew.TradingSingle.UsedCredit = 0;
m_EC_OrderBasicNew.TradingSingle.OnlineMoney = 0;
m_EC_OrderBasicNew.TradingSingle.PayedMoney = 0;
m_EC_OrderBasicNew.TradingSingle.PayableMoney = OutAllMoney;
//if (OLD_eC_OrderBasic2.TradingSingle.UsedCredit >= OutAllMoney)
//{
// m_EC_OrderBasicNew.TradingSingle.UsedCredit = OutAllMoney;
// m_EC_OrderBasicNew.TradingSingle.OnlineMoney = 0;
// m_EC_OrderBasicNew.TradingSingle.PayedMoney = OutAllMoney;
// m_EC_OrderBasicNew.TradingSingle.PayableMoney = 0;
//}
//else
//{
// if (OutAllMoney >= OLD_eC_OrderBasic2.TradingSingle.TradingMoney)
// {
// m_EC_OrderBasicNew.TradingSingle.UsedCredit = (OLD_eC_OrderBasic.TradingSingle.UsedCredit == null ? 0 : OLD_eC_OrderBasic.TradingSingle.UsedCredit);
// m_EC_OrderBasicNew.TradingSingle.OnlineMoney = (OLD_eC_OrderBasic.TradingSingle.OnlineMoney == null ? 0 : OLD_eC_OrderBasic.TradingSingle.OnlineMoney);
// m_EC_OrderBasicNew.TradingSingle.PayedMoney = (OLD_eC_OrderBasic.TradingSingle.PayedMoney == null ? 0 : OLD_eC_OrderBasic.TradingSingle.PayedMoney);
// m_EC_OrderBasicNew.TradingSingle.PayableMoney = OutAllMoney - m_EC_OrderBasicNew.TradingSingle.PayedMoney;
// }
// else
// {
// m_EC_OrderBasicNew.TradingSingle.UsedCredit = (OLD_eC_OrderBasic.TradingSingle.UsedCredit == null ? 0 : OLD_eC_OrderBasic.TradingSingle.UsedCredit);
// m_EC_OrderBasicNew.TradingSingle.OnlineMoney = (OutAllMoney - m_EC_OrderBasicNew.TradingSingle.UsedCredit);
// m_EC_OrderBasicNew.TradingSingle.PayedMoney = OutAllMoney;
// m_EC_OrderBasicNew.TradingSingle.PayableMoney = 0;
// }
//}
IsSuccess = AutoOutOrder(OLD_eC_OrderBasic2, m_EC_OrderBasicNew, m_EC_AcceptWayByOrderNew, m_EC_OrderPrintParameterNew, m_EC_OrderOperate, 4, 0, payRequest_Out);
IsSuccess = this.AcceptOrder(m_EC_OrderBasicNew.Keyid.Value, commission);
}
}
}
#endregion
return IsSuccess;
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 发起订单属性改变请求
///
/// 请求
///
public int OrderPropertyChangeRequest(EC_OrderDialogue dialogue)
{
if (null == dialogue || !dialogue.DialogueTypeId.HasValue || Guid.Empty == dialogue.InitiatorId || Guid.Empty == dialogue.ReceiverId || !dialogue.TargetOrder.HasValue || dialogue.TargetOrder.Value < 1 || !dialogue.TargetValue.HasValue || null == dialogue.DialogueContent
//|| dialogue.TargetValue.Value < 1
)
{
return 0;
}
IList sqlParms = new List()
{
new SqlParameter(){ParameterName="@returnState",Direction=ParameterDirection.ReturnValue,SqlDbType=SqlDbType.Int,DbType=DbType.Int32},
new SqlParameter("@InitiatorId",dialogue.InitiatorId){SqlDbType=SqlDbType.UniqueIdentifier},
new SqlParameter("@ReceiverId",dialogue.ReceiverId){SqlDbType=SqlDbType.UniqueIdentifier},
new SqlParameter("@TargetOrder",dialogue.TargetOrder.Value){SqlDbType=SqlDbType.Int},
new SqlParameter("@TargetValue",dialogue.TargetValue){SqlDbType=SqlDbType.Money,Size=8},
new SqlParameter("@DialogueTypeId",dialogue.DialogueTypeId){SqlDbType=SqlDbType.Int},
new SqlParameter("@DialogueContent",dialogue.DialogueContent){SqlDbType=SqlDbType.VarChar,Size=200}
};
try
{
_dataBase.Query("sp_OrderPropertyChangeRequest", CommandType.StoredProcedure, sqlParms.ToArray());
#region 根据订单判断是否被自动外协
//if (dialogue.DialogueTypeId != 2)
//{
// #region 根据订单判断是否被自动外协
// EC_OrderBasic m_EC_OrderBasicOut = SelectOutOrderById(dialogue.TargetOrder.Value);
// if (m_EC_OrderBasicOut != null && m_EC_OrderBasicOut.Keyid > 0)
// {
// IList sqlParmsOut = new List()
// {
// new SqlParameter(){ParameterName="@returnState",Direction=ParameterDirection.ReturnValue,SqlDbType=SqlDbType.Int,DbType=DbType.Int32},
// new SqlParameter("@InitiatorId",m_EC_OrderBasicOut.BuyerId){SqlDbType=SqlDbType.UniqueIdentifier},
// new SqlParameter("@ReceiverId",m_EC_OrderBasicOut.SellerId){SqlDbType=SqlDbType.UniqueIdentifier},
// new SqlParameter("@TargetOrder",m_EC_OrderBasicOut.Keyid.Value){SqlDbType=SqlDbType.Int},
// new SqlParameter("@TargetValue",dialogue.TargetValue){SqlDbType=SqlDbType.Money,Size=8},
// new SqlParameter("@DialogueTypeId",dialogue.DialogueTypeId){SqlDbType=SqlDbType.Int},
// new SqlParameter("@DialogueContent",dialogue.DialogueContent){SqlDbType=SqlDbType.VarChar,Size=200}
// };
// _dataBase.Query("sp_OrderPropertyChangeRequest", CommandType.StoredProcedure, sqlParmsOut.ToArray());
// }
// #endregion
//}
//else
//{
// #region 根据订单判断是否来源于自动外协
// EC_OrderBasic m_EC_OrderBasicFromOut = SelectFromOutOrderById(dialogue.TargetOrder.Value);
// if (m_EC_OrderBasicFromOut != null && m_EC_OrderBasicFromOut.Keyid > 0)
// {
// IList sqlParmsFromOut = new List()
// {
// new SqlParameter(){ParameterName="@returnState",Direction=ParameterDirection.ReturnValue,SqlDbType=SqlDbType.Int,DbType=DbType.Int32},
// new SqlParameter("@InitiatorId",m_EC_OrderBasicFromOut.SellerId){SqlDbType=SqlDbType.UniqueIdentifier},
// new SqlParameter("@ReceiverId",m_EC_OrderBasicFromOut.BuyerId){SqlDbType=SqlDbType.UniqueIdentifier},
// new SqlParameter("@TargetOrder",m_EC_OrderBasicFromOut.Keyid.Value){SqlDbType=SqlDbType.Int},
// new SqlParameter("@TargetValue",dialogue.TargetValue){SqlDbType=SqlDbType.Money,Size=8},
// new SqlParameter("@DialogueTypeId",dialogue.DialogueTypeId){SqlDbType=SqlDbType.Int},
// new SqlParameter("@DialogueContent",dialogue.DialogueContent){SqlDbType=SqlDbType.VarChar,Size=200}
// };
// _dataBase.Query("sp_OrderPropertyChangeRequest", CommandType.StoredProcedure, sqlParmsFromOut.ToArray());
// }
// #endregion
//}
#endregion
return (int)sqlParms[0].Value;
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 卖家退单操作
///
///
///
///
///
public int RetireOrderBySeller(int orderId, decimal retireMony, string operatorName)
{
IList sqlParms = new List()
{
new SqlParameter(){ParameterName="@returnState",Direction=ParameterDirection.ReturnValue,SqlDbType=SqlDbType.Int,DbType=DbType.Int32},
new SqlParameter("@orderId",orderId){SqlDbType=SqlDbType.Int},
new SqlParameter("@retireMony",retireMony){SqlDbType=SqlDbType.Money,Size=8},
new SqlParameter("@opetName",operatorName){SqlDbType=SqlDbType.VarChar,Size=40}
};
try
{
_dataBase.Query("sp_RetireOrderBySeller", CommandType.StoredProcedure, sqlParms.ToArray());
return (int)sqlParms[0].Value;
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 执行订单属性改变请求
///
/// 要执行的目标数据
/// 执行者
///
public int OrderPropertyChangeExecute(Guid requestId, Guid memberId)
{
if (Guid.Empty == requestId || Guid.Empty == memberId)
{
return 0;
}
else
{
}
IList sqlParms = new List()
{
new SqlParameter(){ParameterName="@returnState",Direction=ParameterDirection.ReturnValue,SqlDbType=SqlDbType.Int,DbType=DbType.Int32},
new SqlParameter("@Keyid",requestId){SqlDbType=SqlDbType.UniqueIdentifier},
new SqlParameter("@ReceiverId",memberId){SqlDbType=SqlDbType.UniqueIdentifier}
};
try
{
_dataBase.Query("sp_OrderPropertyChangeExecute", CommandType.StoredProcedure, sqlParms.ToArray());
return (int)sqlParms[0].Value;
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 答复订单属性改变请求
///
/// 要答复的目标数据
/// 答复人
/// 是否同意
///
public int OrderPropertyChangeReply(Guid requestId, Guid memberId, bool isAllow)
{
if (Guid.Empty == requestId || Guid.Empty == memberId)
{
return 0;
}
else
{
}
IList sqlParms = new List()
{
new SqlParameter(){ParameterName="@returnState",Direction=ParameterDirection.ReturnValue,SqlDbType=SqlDbType.Int,DbType=DbType.Int32},
new SqlParameter("@Keyid",requestId){SqlDbType=SqlDbType.UniqueIdentifier},
new SqlParameter("@ReceiverId",memberId){SqlDbType=SqlDbType.UniqueIdentifier},
new SqlParameter("@IsAllow",isAllow){SqlDbType=SqlDbType.Bit}
};
try
{
_dataBase.Query("sp_OrderPropertyChangeReply", CommandType.StoredProcedure, sqlParms.ToArray());
#region 根据订单判断是否被自动外协
//EC_OrderDialogue m_EC_OrderDialogue = this.SelecEC_OrderDialogueById(requestId);
//if (m_EC_OrderDialogue != null && m_EC_OrderDialogue.DialogueTypeId != 2)
//{
// #region 根据订单判断是否被自动外协
// EC_OrderBasic m_EC_OrderBasicOut = this.SelectFromOutOrderById(m_EC_OrderDialogue.TargetOrder.Value);
// if (m_EC_OrderBasicOut != null && m_EC_OrderBasicOut.Keyid > 0)
// {
// EC_OrderDialogue SelecEC_OrderDialogueById_Out = this.SelecEC_OrderDialogueById_Out(m_EC_OrderBasicOut.Keyid);
// if (SelecEC_OrderDialogueById_Out != null)
// {
// IList sqlParmsOut = new List()
// {
// new SqlParameter(){ParameterName="@returnState",Direction=ParameterDirection.ReturnValue,SqlDbType=SqlDbType.Int,DbType=DbType.Int32},
// new SqlParameter("@Keyid",SelecEC_OrderDialogueById_Out.Keyid){SqlDbType=SqlDbType.UniqueIdentifier},
// new SqlParameter("@ReceiverId",SelecEC_OrderDialogueById_Out.ReceiverId){SqlDbType=SqlDbType.UniqueIdentifier},
// new SqlParameter("@IsAllow",isAllow){SqlDbType=SqlDbType.Bit}
// };
// _dataBase.Query("sp_OrderPropertyChangeReply", CommandType.StoredProcedure, sqlParmsOut.ToArray());
// }
// }
// #endregion
//}
//else
//{
// #region 根据订单判断是否来源于自动外协
// EC_OrderBasic m_EC_OrderBasicFromOut = this.SelectOutOrderById(m_EC_OrderDialogue.TargetOrder.Value);
// if (m_EC_OrderBasicFromOut != null && m_EC_OrderBasicFromOut.Keyid > 0)
// {
// EC_OrderDialogue SelecEC_OrderDialogueById_Out = this.SelecEC_OrderDialogueById_Out(m_EC_OrderBasicFromOut.Keyid);
// if (SelecEC_OrderDialogueById_Out != null)
// {
// IList sqlParmsOut = new List()
// {
// new SqlParameter(){ParameterName="@returnState",Direction=ParameterDirection.ReturnValue,SqlDbType=SqlDbType.Int,DbType=DbType.Int32},
// new SqlParameter("@Keyid",SelecEC_OrderDialogueById_Out.Keyid){SqlDbType=SqlDbType.UniqueIdentifier},
// new SqlParameter("@ReceiverId",SelecEC_OrderDialogueById_Out.ReceiverId){SqlDbType=SqlDbType.UniqueIdentifier},
// new SqlParameter("@IsAllow",isAllow){SqlDbType=SqlDbType.Bit}
// };
// _dataBase.Query("sp_OrderPropertyChangeReply", CommandType.StoredProcedure, sqlParmsOut.ToArray());
// }
// }
// #endregion
//}
#endregion
return (int)sqlParms[0].Value;
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 根据接手人查询属性变更请求集合
///
/// 接手用户
///
public IEnumerable SelectPropertyChangeRequest(Guid memberId)
{
if (Guid.Empty == memberId)
{
return null;
}
else
{
}
List result = null;
IList sqlParms = new List()
{
new SqlParameter("@ReceiverId",memberId){SqlDbType=SqlDbType.UniqueIdentifier}
};
try
{
using (IDataReader reader = _dataBase.QueryDataReader("sp_OrderPropertyChangeRequestGetter", CommandType.StoredProcedure, sqlParms.ToArray()))
{
result = _dataBase.ReadDataToModel(reader);
}
}
catch (Exception ex)
{
throw ex;
}
return result;
}
///
/// 送货
///
/// 货运信息
///
public bool DeliverPresswork(EC_AwbInfo awbInfo)
{
if (null == awbInfo)
return false;
else
{
}
_eC_OrderOperateDAL = new EC_OrderOperateDAL(_dataBase);
EC_AcceptWayByOrderDAL _eC_AcceptWayByOrderDAL = new EC_AcceptWayByOrderDAL(_dataBase);
if (!awbInfo.Keyid.HasValue || 0 >= awbInfo.Keyid.Value)
{
return false;
}
else
{
}
try
{
using (TransactionScope tran = new TransactionScope())
{
bool isWin = false;
/*
新增送货信息
*/
IList sqlParms = new List()
{
new SqlParameter(){ParameterName="@returnValue",Direction=ParameterDirection.ReturnValue,SqlDbType=SqlDbType.Int,DbType=DbType.Int32},
new SqlParameter(){ParameterName="@Keyid",Value=awbInfo.Keyid},
new SqlParameter(){ParameterName="@DeliverPerson",Value=awbInfo.DeliverPerson,SqlDbType=SqlDbType.VarChar,Size=50},
new SqlParameter(){ParameterName="@DeliverTime",Value=awbInfo.DeliverTime,SqlDbType=SqlDbType.DateTime},
new SqlParameter(){ParameterName="@Remark",Value=awbInfo.Remark,SqlDbType=SqlDbType.VarChar,Size=200},
new SqlParameter(){ParameterName="@TheAwb",Value=awbInfo.TheAwb,SqlDbType=SqlDbType.VarChar,Size=30},
new SqlParameter(){ParameterName="@OperateType",Value=awbInfo.Operate.OperateType,SqlDbType=SqlDbType.Int,Size=4},
new SqlParameter(){ParameterName="@AcceptTypeId",Value=awbInfo.AcceptTypeId,SqlDbType=SqlDbType.Int,Size=4},
new SqlParameter(){ParameterName="@AppointCourierCompany",Value=awbInfo.AppointCourierCompany,SqlDbType=SqlDbType.VarChar,Size=50},
new SqlParameter(){ParameterName="@FetchAddress",Value=awbInfo.FetchAddress,SqlDbType=SqlDbType.VarChar,Size=200},
new SqlParameter(){ParameterName="@FetchContacts",Value=awbInfo.FetchContacts,SqlDbType=SqlDbType.VarChar,Size=50},
new SqlParameter(){ParameterName="@FetchPhoneNum",Value=awbInfo.FetchPhoneNum,SqlDbType=SqlDbType.VarChar,Size=20}
};
_dataBase.Query("sp_EC_AwbInfo_DeliverPresswork", CommandType.StoredProcedure, sqlParms.ToArray());
isWin = 1.Equals(sqlParms[0].Value);
if (!isWin)
return false;
else
{
}
if (awbInfo.Operate.OperateType != -1)
{
isWin = _eC_OrderOperateDAL.InserModel(awbInfo.Operate);//新增操作信息
if (!isWin)
return false;
else
;
isWin = this.UpdateOrderStateUnit(awbInfo.Operate);//修改订单状态
if (!isWin)
return false;
else
;
}
else
{
awbInfo.Operate.OperateType = 5;
isWin = _eC_OrderOperateDAL.InserModel(awbInfo.Operate);//新增操作信息
if (!isWin)
return false;
else
;
}
tran.Complete();
return isWin;
}
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 根据编号获取货运信息
///
/// 订单编号
///
public EC_AwbInfo SelectAwbInfoById(int orderId)
{
IList result = _dataBase.SelectModel(" * ", "EC_AwbInfo", string.Format(" Keyid={0} ", orderId)) as IList;
return null == result || result.Count < 1 ? null : result[0];
}
///
/// 根据订单编号获取订单操作信息
///
/// 订单编号
///
public IEnumerable SelectOrderOperates(int orderId)
{
IList result = null;
using (IDataReader reader = _dataBase.QueryDataReader("sp_EC_OrderOperate_Search", CommandType.StoredProcedure, new SqlParameter()
{
ParameterName = "@orderId",
Value = orderId,
SqlDbType = SqlDbType.Int
}))
{
result = _dataBase.ReadDataToModel(reader);
}
return result;
}
///
/// 根据订单编号获取收货地址信息
///
/// 订单编号集合
///
public IEnumerable SelectOrderAddress(string orderIds)
{
IList result = null;
using (IDataReader reader = _dataBase.QueryDataReader("sp_SendOrderAdress", CommandType.StoredProcedure, new SqlParameter()
{
ParameterName = "@ids",
Value = orderIds,
SqlDbType = SqlDbType.VarChar,
Size = 400
}))
{
result = _dataBase.ReadDataToModel(reader);
}
return result;
}
///
/// 根据订单编号确认收货
///
/// 订单编号
/// 买家编号
///
public bool ConfirmAcceptById(int orderId, Guid memberId)
{
/*
新增送货信息
*/
IList sqlParms = new List()
{
new SqlParameter(){ParameterName="@returnValue",Direction=ParameterDirection.ReturnValue,SqlDbType=SqlDbType.Int,DbType=DbType.Int32},
new SqlParameter(){ParameterName="@orderId",Value=orderId},
new SqlParameter(){ParameterName="@memberId",Value=memberId,SqlDbType=SqlDbType.UniqueIdentifier}
};
_dataBase.Query("sp_EC_Order_AcceptById", CommandType.StoredProcedure, sqlParms.ToArray());
return 1.Equals(sqlParms[0].Value);
}
///
/// 判断是否已经操作
///
///
///
///
///
public bool IsOpearted(int keyid, int orderState, string opType)
{
bool isOpearted = false;
if (opType == "受理")
{
isOpearted = IsExist(keyid, opType);
}
else if (opType == "完工" || opType == "送货")
{
isOpearted = IsExist(keyid, opType);
}
else if (opType == "撤单")
{
if (orderState == 0)
{
isOpearted = true;
}
}
return isOpearted;
}
public bool IsExist(int keyid, string opType)
{
bool isExist = false;
string condition = string.Empty;
condition += " OrderId=" + keyid;
condition += " and OperateType>0 ORDER BY LastUpdateTime DESC ";
IList result = _dataBase.SelectModel(" TOP 1 OperateType ", "EC_OrderOperate", condition);
if (result != null && result.Count > 0)
{
EC_OrderOperate model = result[0];
if (opType == "受理")
{
if (model.OperateType.Value > 1)
{
isExist = true;
}
}
else if (opType == "完工")
{
if (model.OperateType.Value >= 4)
{
isExist = true;
}
}
else if (opType == "送货")
{
if (model.OperateType.Value == 5)
{
isExist = true;
}
}
}
return isExist;
}
///
/// 修改打印状态
///
///
public void UpdatePrintState(int orderId)
{
try
{
string sqlStr = string.Empty;
sqlStr = "UPDATE EC_OrderBasic SET IsPrint='true' WHERE Keyid=@orderId";
SqlParameter par = new SqlParameter("@orderId", orderId);
_dataBase.ExecuteSql(sqlStr, par);
}
catch
{
}
}
///
/// 修改打印状态
///
///
public bool Updatejinedanjia(int orderId, decimal SumPrice, decimal UnitPrice,int num)
{
try
{
string sqlStr = string.Empty;
sqlStr = "UPDATE EC_OrderBasic SET SumPrice="+ SumPrice + " ,UnitPrice="+ UnitPrice + " WHERE Keyid=@orderId;UPDATE [EC_OrderExtend] SET [PrintNum]=" + num + " WHERE Keyid="+ orderId ;
SqlParameter par = new SqlParameter("@orderId", orderId);
_dataBase.ExecuteSql(sqlStr, par);
}
catch
{
}
return true;
}
///
/// 修改打印状态
///
///
public void UpdatePrintfengqianState(int orderId)
{
try
{
string sqlStr = string.Empty;
sqlStr = "UPDATE EC_OrderExtend SET IsPrintfengqian='true' WHERE Keyid=@orderId";
SqlParameter par = new SqlParameter("@orderId", orderId);
_dataBase.ExecuteSql(sqlStr, par);
}
catch
{
}
}
///
/// 修改打印状态
///
///
public void UpdatePrintBiaoqianState(int orderId)
{
try
{
string sqlStr = string.Empty;
sqlStr = "UPDATE EC_OrderBasic SET IsPrintbiaoqian='true' WHERE Keyid=@orderId";
SqlParameter par = new SqlParameter("@orderId", orderId);
_dataBase.ExecuteSql(sqlStr, par);
}
catch
{
}
}
///
/// 查询后道(3)整单(4)
///
///
///
///
///
///
///
///
///
///
///
///
///
public IEnumerable SelectAferOfOutOrder(Infrastructure.Query.Pagination pagination, Guid MemberId, DateTime? StartCreatTime, DateTime? EndCreatTime, DateTime? StartReturnTime, DateTime? EndReturnTime, string Creater, string OutFirm, string WorkStates, string OutOrderId, int? RelationType)
{
try
{
string condition = " 1=1 ";
if (MemberId != Guid.Empty)
condition += " and a.BuyerId = '" + MemberId + "' ";
if (RelationType > 0)
condition += " and b.RelationTypeId = '" + RelationType + "' ";
if (StartCreatTime != null)
condition += " and a.CreateTime >= '" + StartCreatTime.Value + "' ";
if (EndCreatTime != null)
condition += " and a.CreateTime =< '" + EndCreatTime.Value.AddDays(1) + "' ";
if (StartReturnTime != null)
condition += " and d.DeliverTime >= '" + StartReturnTime.Value + "' ";
if (EndReturnTime != null)
condition += " and d.DeliverTime >= '" + EndReturnTime.Value.AddDays(1) + "' ";
if (!string.IsNullOrEmpty(Creater))
condition += " and a.Creater like '%" + Creater + "%'";
if (WorkStates == "true")
condition += " and ( a.OrderState > 3 or a.OrderState= -1) ";
else if (WorkStates == "false")
condition += " and ( a.OrderState <= 3 and a.OrderState != -1) ";
if (!string.IsNullOrEmpty(OutFirm))
condition += " and a.SellerId = '" + OutFirm + "' ";
if (!string.IsNullOrEmpty(OutOrderId))
condition += " and a.SellerOrderId like '%" + OutOrderId + "%' ";
return _dataBase.SelectModelPage(pagination, " a.*,e.PrintNum AS PrintNum,pt.PrintName as PrintTypeName,c.Keyid AS OldOrderId ,c.SellerOrderId AS OldOrderSellerId,d.DeliverTime AS DeliverTime", " dbo.EC_OrderBasic AS a LEFT JOIN dbo.OA_OrderWorkListRelation AS b ON a.Keyid = b.RelationTargetId LEFT JOIN dbo.EC_OrderBasic AS c ON c.Keyid = b.OrderId LEFT JOIN dbo.EC_AwbInfo AS d ON a.Keyid = d.Keyid LEFT JOIN dbo.EC_OrderExtend AS e ON a.Keyid = e.Keyid LEFT JOIN dbo.Sys_Dictionary AS f ON f.DicType='EC_订单类型' And f.MeanValue = a.OrderTypeId Left Join SysInquiry_PrintingType as pt On a.PrintTypeId=pt.Keyid ", " a.CreateTime DESC ", " CreateTime DESC ", condition);
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 根据订单编号获取订单
///
/// 订单编号
///
public Pay_TradingSingle GetPay_TradingSingleById(int orderId)
{
if (1 > orderId)
return null;
else
{
}
IList result = _dataBase.SelectModel(" * ", "Pay_TradingSingle ", string.Format(" OrderId = {0}", orderId));
return null == result || result.Count < 1 ? null : result[0];
}
///
/// 判断某订单是否是另一订单的自动外协订单
///
///
///
public bool IsOutOrder(int orderId)
{
bool isOutOrder = false;
string condition = " OutId=" + orderId;
IList result = _dataBase.SelectModel("*", "EC_OrderBasic", condition);
if (result != null && result.Count > 0)
{
isOutOrder = true;
}
return isOutOrder;
}
///
/// 自动外协订单
///
///
///
///
///
///
///
///
///
///
public bool AutoOutOrder(EC_OrderBasic OLD_orderBasic, EC_OrderBasic orderBasic, EC_AcceptWayByOrder acceptWayByOrder, EC_OrderPrintParameter orderPrintParameter, EC_OrderOperate m_EC_OrderOperate, int? RelationTypeid, double commission, Pay_Request payRequest)
{
try
{
_eC_OrderExtendDAL = new EC_OrderExtendDAL(_dataBase);
_pay_TradingSingleDAL = new Pay_TradingSingleDAL(_dataBase);
_eC_AcceptWayByOrderDAL = new EC_AcceptWayByOrderDAL(_dataBase);
_eC_OrderOperateDAL = new EC_OrderOperateDAL(_dataBase);
OA_OrderWorkListRelationDAL dal_OA_OrderWorkListRelationDAL = new OA_OrderWorkListRelationDAL(_dataBase);
EC_SpecialForumsDAL dal_EC_SpecialForumsDAL = new EC_SpecialForumsDAL(_dataBase);
EC_OrderExtend orderExtend = orderBasic.OrderExtend;
Pay_TradingSingle tradingSingle = orderBasic.TradingSingle;
using (TransactionScope t_TransactionScope = new TransactionScope())
{
bool isWin = false;
isWin = InserModel(orderBasic);
if (!isWin)
{
return false;
}
OLD_orderBasic.OutId = acceptWayByOrder.TargetId = tradingSingle.OrderId = orderExtend.Keyid = orderBasic.Keyid;//获取返回的订单唯一编号
isWin = _eC_OrderExtendDAL.InserModel(orderExtend);
if (!isWin)
{
return false;
}
isWin = _eC_AcceptWayByOrderDAL.InserModel(acceptWayByOrder);
if (!isWin)
{
return false;
}
isWin = _pay_TradingSingleDAL.InserModel(tradingSingle);
if (!isWin)
{
return false;
}
//增加下单操作记录
isWin = _eC_OrderOperateDAL.InserModel(new EC_OrderOperate()
{
OperateType = 1,
Operator = orderBasic.Operator,
OrderId = orderBasic.Keyid,
Remark = string.Empty
});
if (!isWin)
{
return false;
}
isWin = _eC_OrderExtendDAL.UpSurplusPrintNum(m_EC_OrderOperate.OrderId, -1, orderBasic.Operator);
if (!isWin)
{
return false;
}
isWin = UpdateOrderStateUnit(m_EC_OrderOperate);
if (!isWin)
{
return false;
}
isWin = UpdateModel(OLD_orderBasic);
if (!isWin)
{
return false;
}
payRequest.Subject = string.Format(CY.Infrastructure.Common.UtilConst.ORDER_PAY_SUBJECT_FORMT, orderBasic.Keyid, orderBasic.SellerOrderId);
isWin = PayOrder(orderBasic.Keyid.Value, payRequest, 0, 0);
if (!isWin)
{
return false;
}
if (orderBasic.TradingSingle.PayableMoney == 0)
{
orderBasic.PayState = -1;
isWin = UpdateModel(orderBasic);
if (!isWin)
{
return false;
}
}
OA_OrderWorkListRelation m_OA_OrderWorkListRelation = new OA_OrderWorkListRelation();
m_OA_OrderWorkListRelation.OrderId = m_EC_OrderOperate.OrderId;
m_OA_OrderWorkListRelation.RelationTypeId = RelationTypeid;
m_OA_OrderWorkListRelation.RelationTargetId = orderBasic.Keyid;
isWin = dal_OA_OrderWorkListRelationDAL.InserModel(m_OA_OrderWorkListRelation);
if (!isWin)
{
return false;
}
if (null != orderPrintParameter)
{
_eC_OrderPrintParameterDAL = new EC_OrderPrintParameterDAL(_dataBase);
orderPrintParameter.OrderId = orderBasic.Keyid.Value;
isWin = _eC_OrderPrintParameterDAL.InserModel(orderPrintParameter);
}
if (isWin)
{
t_TransactionScope.Complete();
}
return isWin;
}
}
catch (Exception ex)
{
throw ex;
}
}
///
/// WEB服务自动完成订单
///
public void AutoCompleteOrderByWebService()
{
try
{
IList result = _dataBase.SelectModel(" * ", " EC_OrderBasic ", string.Format(" OrderState <> 1 AND OrderState <> 6 AND OrderState <> -1 AND OrderState > 0 AND DeliveryTime <=GETDATE() AND OrderTypeId <=0 ")) as IList;//执行查询
if (result != null && result.Count > 0)
{
int i = 0;
foreach (var item in result)
{
ConfirmAcceptById(result[i].Keyid.Value, result[i].BuyerId);
}
i++;
}
return;
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
///
/// 修改打印状态
///
///
public void UpdateDeliveryOrderId(int orderId,Guid DeliveryOrderId)
{
try
{
string sqlStr = string.Empty;
sqlStr = "UPDATE EC_OrderExtend SET DeliveryOrderId=@DeliveryOrderId WHERE Keyid=@orderId";
IList sqlParms = new List()
{
new SqlParameter("@DeliveryOrderId", DeliveryOrderId),
new SqlParameter("@orderId", orderId),
};
_dataBase.ExecuteSql(sqlStr, sqlParms.ToArray());
}
catch
{
}
}
///
/// 根据发货单id查询
///
///
///
///
public IEnumerable GetEC_OrderBasicListBydeliverorderId(Guid deliverorderId, Guid FirmId)
{
try
{
if (deliverorderId==null || deliverorderId.Equals(Guid.Empty))
return null;//错误数据返会空
IList result = _dataBase.SelectModel(" ob.*,oe.printunit,oe.shifouDelivery,oe.DeliveryOrderId,oe.Kaipiaoshenqing,oe.KaipiaoshenqingCreater,oe.KaipiaoshenqingTime,oe.KaipiaoquerenCreater,oe.KaipiaoquerenTime,oe.Kehuqianshou,oe.KehuqianshouCreater,oe.KehuqianshouTime ,oe.Quchudingdan,oe.QuchudingdanCreater,oe.QuchudingdanTime,oe.PrintPackDeliveryRequir,oe.PrintNum,oe.ExigencyCaseId,pt.PrintName as PrintTypeName ", "EC_OrderBasic ob Inner Join EC_OrderExtend as oe On ob.Keyid=oe.Keyid Left Join SysInquiry_PrintingType as pt On(ob.PrintTypeId=pt.Keyid) ", string.Format(" oe.DeliveryOrderId = '{0}' and ob.SellerId ='{1}' order by SellerOrderId DESC ", deliverorderId, FirmId)) as IList;//执行查询
return result;//返回结果
}
catch (Exception ex)
{
throw ex;
}
}
}
}