/**
* EC_OrderDAL.cs
*
* 功 能: 订单基本信息数据访问接口实现类
* 类 名: EC_OrderDAL
*
* Ver 变更日期 负责人 变更内容
* ───────────────────────────────────
* V0.01 2013-4-23 10:09 吴崎均 更改InsertModel以及UpdateModel以与存储相匹配
* V0.02 2013-4-23 16:43 吴崎均 增加新增订单方法
* V0.03 2013-4-24 11:03 吴崎均 增加修改订单信息方法,更新新增订单方法使之需要支付时直接调用订单支付方法
* V0.04 2013-4-26 9:53 吴崎均 修改NewOrder方法 增加订单收货方式参数的添加
* V0.05 2013-4-28 11:16 吴崎均 增加orderBasicDal几个方法的转调
* V0.06 2013-4-28 11:41 吴崎均 增加根据编号获取订单基本信息方法
* V0.07 2013-5-2 11:43 吴崎均 修改NewOrder方法增加秒杀订单编号使秒杀下单扣除秒杀数量能与下单同步进行,重载一般新建订单方法
* V0.08 2013-5-6 14:00 吴崎均 修改NewOrder方法,增加参数“订单印刷对象”
* V0.09 2013-5-21 14:26 吴崎均 修改NewOrder方法,在订单添加结束其它操作未处理前增加下单操作记录
*
*
*/
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 CY.Model.Pay;
using System.Transactions;
namespace CY.SQLDAL
{
///
/// 订单操作访问接口实现类
///
public class EC_OrderDAL : IEC_OrderDAL
{
private Database _dataBase = null;
EC_OrderBasicDAL _eC_OrderBasicDAL = null;
EC_OrderExtendDAL _eC_OrderExtendDAL = null;
Pay_TradingSingleDAL _pay_TradingSingleDAL = null;
EC_AcceptWayByOrderDAL _eC_AcceptWayByOrderDAL = null;
EC_SeckillBusinessDAL _eC_SeckillBusinessDAL = null;
EC_OrderPrintParameterDAL _eC_OrderPrintParameterDAL = null;
EC_OrderOperateDAL _eC_OrderOperateDAL = null;
EC_MemberBasicDAL _eC_MemberBasicDAL = null;
OA_CorporateClientsDAL _oA_CorporateClientsDAL = null;
public EC_OrderDAL()
{
_dataBase = new Database();
_eC_OrderBasicDAL = new EC_OrderBasicDAL(_dataBase);
}
///
/// 新建订单(全,含秒杀)
///
/// 订单基础信息
/// 订单扩展信息
/// 交易单
/// 订单收货方式
/// 支付请求(可空)
/// 订单受理佣金(传入值大于0时会调用受理订单进行受理)
/// 秒杀业务编号(传入值大于0时会减少秒杀数量1)
/// 印刷参数对象(秒杀订单不传入)
///
public bool NewOrder(EC_OrderBasic orderBasic, EC_OrderExtend orderExtend, Pay_TradingSingle tradingSingle, EC_AcceptWayByOrder acceptWayByOrder, Pay_Request payRequest = null, double commission = 0, int seckillId = 0, EC_OrderPrintParameter orderPrintParameter = null)
{
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);
_eC_MemberBasicDAL = new EC_MemberBasicDAL(_dataBase);
_oA_CorporateClientsDAL = new OA_CorporateClientsDAL(_dataBase);
using (System.Transactions.TransactionScope tran = new System.Transactions.TransactionScope())
{
bool isWin = false;
isWin = _eC_OrderBasicDAL.InserModel(orderBasic);
if (!isWin)
{
return false;
}
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;
}
if (null != payRequest)//有支付请求则调用支付订单方法
{
//传入的payRequest.Subject必须为格式化器 格式例如:{0},{1},{2}
//0:Keyid,1:SellerOrderId,2:DocumentName
payRequest.Subject = string.Format(payRequest.Subject, orderBasic.Keyid, orderBasic.SellerOrderId, orderBasic.DocumentName);
isWin = _eC_OrderBasicDAL.PayOrder(orderBasic.Keyid.Value, payRequest, commission, 0);
}
if (0 < seckillId)
{
_eC_SeckillBusinessDAL = new EC_SeckillBusinessDAL(_dataBase);
//若有秒杀业务编号则扣除其秒杀数量1
isWin = _eC_SeckillBusinessDAL.DecreaseSeckillNum(seckillId, 1, orderBasic.BuyerId);
}
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)
{
return false;
}
else
tran.Complete();
}
}
catch (Exception ex)
{
throw ex;
}
return true;
}
///
/// 新建订单(一般)
///
/// 订单基础信息
/// 订单扩展信息
/// 交易单
/// 订单收货方式
/// 订单印刷参数对象
///
public bool NewOrder(EC_OrderBasic orderBasic, EC_OrderExtend orderExtend, Pay_TradingSingle tradingSingle, EC_AcceptWayByOrder acceptWayByOrder, EC_OrderPrintParameter orderPrintParameter)
{
return NewOrder(orderBasic, orderExtend, tradingSingle, acceptWayByOrder, null, 0, 0, orderPrintParameter);
}
///
/// 修改订单信息
///
/// 订单主信息
/// 订单扩展信息
/// 订单印刷选项
///
public bool UpdateOrderInfo(EC_OrderBasic orderBasic, EC_OrderExtend orderExtend, EC_OrderPrintParameter orderParam = null)
{
try
{
_eC_OrderExtendDAL = new EC_OrderExtendDAL(_dataBase);
orderBasic.OrderExtend = orderExtend;
return _eC_OrderExtendDAL.UpdateModel(orderBasic, orderParam);
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 修改外协订单
///
///
///
///
///
public bool UpdateOutOrderInfo(EC_OrderBasic orderBasic, EC_OrderExtend orderExtend, EC_OrderPrintParameter orderParam = null)
{
try
{
_eC_OrderExtendDAL = new EC_OrderExtendDAL(_dataBase);
return _eC_OrderExtendDAL.UpdateOutOrderInfo(orderBasic, orderExtend, orderParam);
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 后道,整单外协
///
///
///
///
///
///
///
public bool OutOrder(EC_OrderBasic orderBasic, EC_AcceptWayByOrder acceptWayByOrder, EC_OrderPrintParameter orderPrintParameter, EC_OrderOperate m_EC_OrderOperate, int? RelationTypeid, string orderIds)
{
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);
string[] orderIdArray = orderIds.Trim(',').Split(',');
int? NewOrderId = 0;
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 (System.Transactions.TransactionScope tran = new System.Transactions.TransactionScope())
{
bool isWin = false;
orderBasic.OutId = 0;
isWin = _eC_OrderBasicDAL.InserModel(orderBasic);
if (!isWin)
{
return false;
}
else
{
//无操作
}
NewOrderId = acceptWayByOrder.TargetId = tradingSingle.OrderId = orderExtend.Keyid = orderBasic.Keyid;//获取返回的订单唯一编号
isWin = _eC_OrderExtendDAL.InserModel(orderExtend);
if (!isWin)
{
return false;
}
else
{
//无操作
}
//isWin = _eC_OrderExtendDAL.InserModel(orderExtend);
//if (!isWin)
//{
// return false;
//}
//else
//{
// //无操作
//}
isWin = _eC_AcceptWayByOrderDAL.InserModel(acceptWayByOrder);
if (!isWin)
{
return false;
}
else
{
//无操作
}
isWin = _pay_TradingSingleDAL.InserModel(tradingSingle);
if (!isWin)
{
return false;
}
else
{
//无操作
}
//增加下单操作记录
isWin = _eC_OrderOperateDAL.InserModel(new EC_OrderOperate()
{
OperateType = 1,
Operator = orderBasic.Operator,
OrderId = orderBasic.Keyid,
Remark = string.Empty
});
if (!isWin)
{
return false;
}
else
{
//无操作
}
isWin = _eC_OrderExtendDAL.UpSurplusPrintNum(m_EC_OrderOperate.OrderId, -1, orderBasic.Operator);
if (!isWin)
{
return false;
}
else
{
//无操作
}
isWin = _eC_OrderBasicDAL.UpdateOrderStateUnit(m_EC_OrderOperate);
if (!isWin)
{
return false;
}
else
{
//无操作
}
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;
}
else
{
//无操作
}
if (null != orderPrintParameter)
{
_eC_OrderPrintParameterDAL = new EC_OrderPrintParameterDAL(_dataBase);
orderPrintParameter.OrderId = orderBasic.Keyid.Value;
isWin = _eC_OrderPrintParameterDAL.InserModel(orderPrintParameter);
}
else
{
}
if (orderIdArray != null && orderIdArray.Length > 0)
{
foreach (var item in orderIdArray)
{
EC_OrderBasic item_EC_OrderBasic = GetOrderById(int.Parse(item));
if (item_EC_OrderBasic != null)
{
item_EC_OrderBasic.OutId = -2;
isWin = _eC_OrderBasicDAL.UpdateModel(item_EC_OrderBasic);
if (!isWin)
{
return false;
}
else
{
//无操作
}
}
}
}
if (!isWin)
{
return false;
}
else
tran.Complete();
}
}
catch (Exception ex)
{
throw ex;
}
return true;
}
/////
///// 修改订单状态
/////
///// 状态编号
///// 订单编号集合
/////
//public bool UpdataOrderState(int stateId,string tOperator, params int[] orderIds)
//{
// int maxLength = 0;
// if (null == orderIds || (maxLength = orderIds.Length) == 0)
// {
// return false;
// }
// else { }
// int i = -1;
// try
// {
// using (System.Transactions.TransactionScope tran = new System.Transactions.TransactionScope())
// {
// while (++i < maxLength)
// {
// if (!_eC_OrderBasicDAL.UpdateOrderState(new EC_OrderOperate() { OrderId = orderIds[i], Remark = "", OperateType = stateId, Operator = tOperator}, stateId))
// {
// return false;
// }
// else
// {
// //无操作
// }
// }
// tran.Complete();
// }
// }
// catch (Exception ex)
// {
// throw ex;
// }
// return true;
//}
///
/// 修改收货时间
///
///
///
///
public bool UpdataOrderDeliveryTime(int orderId, int day)
{
return false;
}
///
/// 新增
///
///
///
public bool InserModel(Infrastructure.Domain.IAggregateRoot model)
{
return false;
}
///
/// 修改
///
///
///
public bool UpdateModel(Infrastructure.Domain.IAggregateRoot model)
{
return false;
}
///
/// 删除
///
///
///
public bool DeleteModel(Infrastructure.Domain.IAggregateRoot model)
{
return false;
}
///
/// 分页查询
///
///
///
///
public IEnumerable SelectModelPage(Infrastructure.Query.Query query, Infrastructure.Query.Pagination pagination)
{
throw new NotImplementedException();
}
///
/// 单个查询
///
///
///
public IEnumerable SelectAllModel(Infrastructure.Query.Query query)
{
throw new NotImplementedException();
}
///
/// 更新订单支付状态
///
/// 订单编号
///
public bool UpdateOrderPayState(int orderId)
{
return _eC_OrderBasicDAL.UpdateOrderPayState(orderId);
}
///
/// 更新订单支付金额
///
/// 订单编号
/// 支付方式(-1:收款、1:付款)
/// 支付请求
///
public bool UpdateOrderPayedMoney(int orderId, int payWay, Pay_Request payRequest)
{
payRequest.UsedCredit = payRequest.UsedCredit.HasValue ? payRequest.UsedCredit : 0;
return _eC_OrderBasicDAL.UpdateOrderPayedMoney(orderId, payWay, payRequest.Paymoney, payRequest.UsedCredit.Value);
}
///
/// 支付订单
///
/// 订单编号
/// 支付请求
/// 受理手续费
/// 外协金额
///
public bool PayOrder(int orderId, Pay_Request payRequest, double commission, decimal OutAllMoney = 0)
{
return _eC_OrderBasicDAL.PayOrder(orderId, payRequest, commission, OutAllMoney);
}
///
/// 订单退款
///
/// 要更新的订单状态
/// 支付请求
///
public bool OrderRefund(EC_OrderOperate orderOperate, params Pay_Request[] payRequests)
{
if (null == payRequests || 0 == payRequests.Length)
return false;
else
;
int i = -1;
int maxLength = payRequests.Length;
Pay_PaymentAccountDAL _pay_PaymentAccountDAL = new Pay_PaymentAccountDAL(_dataBase);
bool isWin = false;
using (TransactionScope tran = new TransactionScope())
{
while (++i < maxLength)
{
isWin = _pay_PaymentAccountDAL.Pay(payRequests[i]);
if (isWin)
continue;
else
return isWin;
}
if (null != orderOperate && -4 == orderOperate.OperateType)//是退款状态时直接退款不改变订单状态
{
isWin = _eC_OrderBasicDAL.UpdateOrderPayedMoney(orderOperate.OrderId.Value, 1, payRequests[0].Paymoney * -1);
}
else if (null != orderOperate && 0 == orderOperate.OperateType)
isWin = _eC_OrderBasicDAL.UpdateOrderStateUnit(orderOperate);
if (!isWin)
return isWin;
else
;
tran.Complete();
}
return isWin;
}
///
/// 受理订单
///
/// 订单编号
/// 受理佣金(受理订单时站方收取的服务费)
///
public bool AcceptOrder(int orderId, double commission)
{
return _eC_OrderBasicDAL.AcceptOrder(orderId, commission);
}
///
/// 根据订单编号获取订单
///
/// 订单编号
///
public EC_OrderBasic GetOrderById(int orderId)
{
return _eC_OrderBasicDAL.SelectModelById(orderId);
//IList result = _dataBase.SelectModel(" * ", "EC_OrderBasic ", string.Format(" Keyid = {0}", orderId));
//return null == result || result.Count < 1 ? null : result[0];
}
///
/// 获取已支付订单的明细
///
///
public IEnumerable GetOrderListByFinish(Infrastructure.Query.Pagination pagination, string startDate, string endDate, string province, string city, string county)
{
string selectTarget = " a.*,b.OnlineMoney,b.UsedCredit,(b.OnlineMoney+b.UsedCredit) as ALLPayMoney,d.Name as OrderTypeName";
string fromSouce = @" dbo.EC_OrderBasic a INNER JOIN dbo.Pay_TradingSingle b
ON a.Keyid=b.OrderId INNER JOIN dbo.EC_MemberBasic c ON b.PayerId=c.MemberId inner join Sys_Dictionary d on
a.OrderTypeId=d.MeanValue and d.DicType='EC_订单类型'
WHERE a.OrderState=-1 AND a.OrderTypeId<1 AND (b.OnlineMoney+b.UsedCredit)>0 ";
if (!string.IsNullOrEmpty(startDate))
{
fromSouce += " and a.CreateTime>='" + startDate + "'";
}
if (!string.IsNullOrEmpty(endDate))
{
fromSouce += " and a.CreateTime<'" + endDate + "'";
}
if (!string.IsNullOrEmpty(province))
{
fromSouce += " and c.Province='" + province + "'";
}
if (!string.IsNullOrEmpty(city))
{
fromSouce += " and c.City='" + city + "'";
}
if (!string.IsNullOrEmpty(county))
{
fromSouce += " and c.County='" + county + "'";
}
var result = _dataBase.SelectModelPage(pagination, selectTarget, fromSouce, " a.LastUpdateTime DESC ", " LastUpdateTime DESC ", string.Empty);//执行查询
return null == result ? null : result;//返回结果
}
///
///
///
///
///
public OA_OrderWorkListRelation GetModelById(int? orderId)
{
if (orderId == null)
return null;//错误数据返会空
IList result = _dataBase.SelectModel("*", "OA_OrderWorkListRelation", string.Format(" OrderId='{0}' and RelationTypeId = 4", orderId)) as IList;//执行查询
return (null == result || result.Count == 0) ? null : result[0];//返回结果
}
///
/// 修改
///
///
///
public bool OldUpdate(EC_OrderExtend model)
{
Model.EC_OrderExtend trueModel = model;
if (trueModel == null)
{
return false;
}
SqlParameter delayTime = null;
if (trueModel.DelayTime.HasValue)
{
delayTime = new SqlParameter("@DelayTime", trueModel.DelayTime);
}
else
{
delayTime = new SqlParameter("@DelayTime", DBNull.Value);
}
IList sqlParms = new List()
{
new SqlParameter("@Keyid",trueModel.Keyid),
new SqlParameter("@ProofreadWayId",trueModel.ProofreadWayId),
new SqlParameter("@ExigencyCaseId",trueModel.ExigencyCaseId),
new SqlParameter("@BusinessManagerId",trueModel.BusinessManagerId),
new SqlParameter("@CustomerManagerId",trueModel.CustomerManagerId),
new SqlParameter("@CustomerLevelId",trueModel.CustomerLevelId),
new SqlParameter("@Contacts",trueModel.Contacts),
new SqlParameter("@ContactPhone",trueModel.ContactPhone),
new SqlParameter("@SurplusPrintNum",trueModel.SurplusPrintNum),
//new SqlParameter("@SurplusPrintNum",trueModel.SurplusPrintNum),
new SqlParameter("@Operate",trueModel.Operate),
new SqlParameter("@Remark",trueModel.Remark),
new SqlParameter("@BookNum",trueModel.BookNum),
new SqlParameter("@BookPrice",trueModel.BookPrice),
new SqlParameter("@NumPerBag",trueModel.NumPerBag),
new SqlParameter("@BagNum",trueModel.BagNum),
delayTime,
new SqlParameter("@Productionprogress",trueModel.Productionprogress),
};
try
{
_dataBase.Query("sp_EC_OrderExtendForSeal_Update", CommandType.StoredProcedure, sqlParms.ToArray());
}
catch (Exception ex)
{
throw ex;
}
return true;
}
///
/// 修改
///
///
///
public bool OldUpdateDelayTime(EC_OrderExtend model)
{
Model.EC_OrderExtend trueModel = model;
if (trueModel == null)
{
return false;
}
SqlParameter delayTime = null;
if (trueModel.DelayTime.HasValue)
{
delayTime = new SqlParameter("@DelayTime", trueModel.DelayTime);
}
else
{
delayTime = new SqlParameter("@DelayTime", DBNull.Value);
}
IList sqlParms = new List()
{
new SqlParameter("@Keyid",trueModel.Keyid),
delayTime,
};
try
{
_dataBase.Query("sp_EC_OrderExtend_UpdateDelayTime", CommandType.StoredProcedure, sqlParms.ToArray());
}
catch (Exception ex)
{
throw ex;
}
return true;
}
///
/// 修改
///
///
///
public bool OldUpdateProductionprogress(EC_OrderExtend model)
{
Model.EC_OrderExtend trueModel = model;
if (trueModel == null)
{
return false;
}
IList sqlParms = new List()
{
new SqlParameter("@Keyid",trueModel.Keyid),
new SqlParameter("@Productionprogress",trueModel.Productionprogress),
};
try
{
_dataBase.Query("sp_EC_OrderExtend_UpdateProductionprogress", CommandType.StoredProcedure, sqlParms.ToArray());
}
catch (Exception ex)
{
throw ex;
}
return true;
}
///
/// 修改
///
///
///
public bool OldUpdateKaipiaoshenqing(EC_OrderExtend model)
{
Model.EC_OrderExtend trueModel = model;
if (trueModel == null)
{
return false;
}
SqlParameter KaipiaoshenqingTime = null;
if (trueModel.KaipiaoshenqingTime.HasValue)
{
KaipiaoshenqingTime = new SqlParameter("@KaipiaoshenqingTime", trueModel.KaipiaoshenqingTime);
}
else
{
KaipiaoshenqingTime = new SqlParameter("@KaipiaoshenqingTime", DBNull.Value);
}
IList sqlParms = new List()
{
new SqlParameter("@Keyid",trueModel.Keyid),
KaipiaoshenqingTime,
new SqlParameter("@Kaipiaoshenqing",trueModel.Kaipiaoshenqing),
new SqlParameter("@KaipiaoshenqingCreater",trueModel.KaipiaoshenqingCreater),
new SqlParameter("@KaipiaoshenqingId",trueModel.KaipiaoshenqingId),
};
string sql = " Update EC_OrderExtend Set KaipiaoshenqingTime=@KaipiaoshenqingTime ,Kaipiaoshenqing=@Kaipiaoshenqing ,KaipiaoshenqingCreater=@KaipiaoshenqingCreater ,KaipiaoshenqingId=@KaipiaoshenqingId Where Keyid =@keyid ";
try
{
_dataBase.ExecuteSql(sql, sqlParms.ToArray());
}
catch (Exception ex)
{
throw ex;
}
return true;
}
///
/// 修改
///
///
///
public bool OldUpdateKaipiaoqueren(EC_OrderExtend model)
{
Model.EC_OrderExtend trueModel = model;
if (trueModel == null)
{
return false;
}
SqlParameter KaipiaoquerenTime = null;
if (trueModel.KaipiaoquerenTime.HasValue)
{
KaipiaoquerenTime = new SqlParameter("@KaipiaoquerenTime", trueModel.KaipiaoquerenTime);
}
else
{
KaipiaoquerenTime = new SqlParameter("@KaipiaoquerenTime", DBNull.Value);
}
IList sqlParms = new List()
{
new SqlParameter("@Keyid",trueModel.Keyid),
KaipiaoquerenTime,
new SqlParameter("@Kaipiaoshenqing",trueModel.Kaipiaoshenqing),
new SqlParameter("@KaipiaoquerenCreater",trueModel.KaipiaoquerenCreater),
};
try
{
_dataBase.Query("sp_EC_OrderExtend_UpdateKaipiaoqueren", CommandType.StoredProcedure, sqlParms.ToArray());
}
catch (Exception ex)
{
throw ex;
}
return true;
}
///
/// 修改
///
///
///
public bool OldUpdateQuchudingdan(EC_OrderExtend model)
{
Model.EC_OrderExtend trueModel = model;
if (trueModel == null)
{
return false;
}
SqlParameter QuchudingdanTime = null;
if (trueModel.QuchudingdanTime.HasValue)
{
QuchudingdanTime = new SqlParameter("@QuchudingdanTime", trueModel.QuchudingdanTime);
}
else
{
QuchudingdanTime = new SqlParameter("@QuchudingdanTime", DBNull.Value);
}
IList sqlParms = new List()
{
new SqlParameter("@Keyid",trueModel.Keyid),
QuchudingdanTime,
new SqlParameter("@Quchudingdan",trueModel.Quchudingdan),
new SqlParameter("@QuchudingdanCreater",trueModel.QuchudingdanCreater),
};
try
{
_dataBase.Query("sp_EC_OrderExtend_UpdateQuchudingdan", CommandType.StoredProcedure, sqlParms.ToArray());
}
catch (Exception ex)
{
throw ex;
}
return true;
}
///
/// 修改
///
///
///
public bool OldUpdateKehuqianshou(EC_OrderExtend model)
{
Model.EC_OrderExtend trueModel = model;
if (trueModel == null)
{
return false;
}
SqlParameter KehuqianshouTime = null;
if (trueModel.KehuqianshouTime.HasValue)
{
KehuqianshouTime = new SqlParameter("@KehuqianshouTime", trueModel.KehuqianshouTime);
}
else
{
KehuqianshouTime = new SqlParameter("@KehuqianshouTime", DBNull.Value);
}
IList sqlParms = new List()
{
new SqlParameter("@Keyid",trueModel.Keyid),
KehuqianshouTime,
new SqlParameter("@Kehuqianshou",trueModel.Kehuqianshou),
new SqlParameter("@KehuqianshouCreater",trueModel.KehuqianshouCreater),
};
try
{
_dataBase.Query("sp_EC_OrderExtend_UpdateKehuqianshou", CommandType.StoredProcedure, sqlParms.ToArray());
}
catch (Exception ex)
{
throw ex;
}
return true;
}
///
/// 获取已支付订单的明细
///
///
public IEnumerable GetshoukuantixingList(Infrastructure.Query.Pagination pagination,Guid FirmId,string province, string city, string county, string CustomerTypeId, string CompanyName, string BusinessManagerId, string AccountManagerId)
{
string selectTarget = " t.* ";
string where = " and oc.[FirmId] ='" + FirmId + "'";
if (!string.IsNullOrEmpty(province))
{
where += " and occ.Province='" + province + "'";
}
if (!string.IsNullOrEmpty(city))
{
where += " and occ.City='" + city + "'";
}
if (!string.IsNullOrEmpty(county))
{
where += " and occ.County='" + county + "'";
}
if (!string.IsNullOrEmpty(CustomerTypeId))
{
where += " and oc.CustomerTypeId='" + CustomerTypeId + "'";
}
if (!string.IsNullOrEmpty(CompanyName))
{
where += " and oc.CompanyName like '%" + CompanyName + "%'";
}
if (!string.IsNullOrEmpty(BusinessManagerId))
{
where += " and oc.BusinessManagerId='" + BusinessManagerId + "'";
}
if (!string.IsNullOrEmpty(AccountManagerId))
{
where += " and oc.AccountManagerId='" + AccountManagerId + "'";
}
string fromSouce = "( select t.*,oy.YujihuikuanTime,oy.Keyid as YujihuikuanKeyid from ( ";
fromSouce += @"
select oc.keyid as BuyerId, oc.[CompanyName] as BuyerName,oc.BusinessManagerId,os.Name as BusinessManager,ob.SumPrice,ob.PayedMoney,ob.shuliang,ob.shoukuanshijian,oc.Paytime
from [OA_CorporateClients] oc
left join OA_Staff os on oc.BusinessManagerId = os.Keyid
inner join [OA_CustomerCommunications] occ on oc.Keyid = occ.Keyid
inner join (
select ob.BuyerId,sum(ob.SumPrice) SumPrice,sum(ts.PayedMoney) PayedMoney ,COUNT(*) as shuliang,convert(char(7), ea.DeliverTime, 120) as shoukuanshijian
from EC_OrderBasic ob Inner Join EC_OrderExtend as oe On(ob.Keyid=oe.Keyid) Inner Join Pay_TradingSingle as ts On(ob.Keyid = ts.OrderId)
left join EC_AwbInfo ea on ob.Keyid = ea.Keyid
where ob.PayState !=-1 and (ob.OrderState = 5 or ob.OrderState = 6 or ob.OrderState = -1 )
group by ob.BuyerId,convert(char(7), ea.DeliverTime, 120)
) ob on (oc.Keyid=ob.BuyerId )
where oc.Paytime =1
" + where;
fromSouce += @"
UNION
select oc.keyid as BuyerId,oc.[CompanyName] as BuyerName,oc.BusinessManagerId,os.Name as BusinessManager,ob.SumPrice,ob.PayedMoney,ob.shuliang,ob.shoukuanshijian,oc.Paytime
from [OA_CorporateClients] oc
left join OA_Staff os on oc.BusinessManagerId = os.Keyid
inner join [OA_CustomerCommunications] occ on oc.Keyid = occ.Keyid
inner join (
select ob.BuyerId,sum(ob.SumPrice) SumPrice,sum(ts.PayedMoney) PayedMoney ,COUNT(*) as shuliang,DATENAME(year, ea.DeliverTime) +'第'+DATENAME(quarter, ea.DeliverTime)+'季度' as shoukuanshijian
from EC_OrderBasic ob Inner Join EC_OrderExtend as oe On(ob.Keyid=oe.Keyid) Inner Join Pay_TradingSingle as ts On(ob.Keyid = ts.OrderId)
left join EC_AwbInfo ea on ob.Keyid = ea.Keyid
where ob.PayState !=-1 and (ob.OrderState = 5 or ob.OrderState = 6 or ob.OrderState = -1 )
group by ob.BuyerId,DATENAME(year, ea.DeliverTime) +'第'+DATENAME(quarter, ea.DeliverTime)
) ob on (oc.Keyid=ob.BuyerId )
where oc.Paytime =2
" + where;
fromSouce += @"
UNION
select oc.keyid as BuyerId, oc.[CompanyName] as BuyerName,oc.BusinessManagerId,os.Name as BusinessManager,ob.SumPrice,ob.PayedMoney,ob.shuliang,ob.shoukuanshijian,oc.Paytime
from [OA_CorporateClients] oc
left join OA_Staff os on oc.BusinessManagerId = os.Keyid
inner join [OA_CustomerCommunications] occ on oc.Keyid = occ.Keyid
inner join (
select ob.BuyerId,sum(ob.SumPrice) SumPrice,sum(ts.PayedMoney) PayedMoney ,COUNT(*) as shuliang, DATENAME(year, ea.DeliverTime) +'第'+CONVERT(varchar,(month(ea.DeliverTime)+5)/6)+'半年' as shoukuanshijian
from EC_OrderBasic ob Inner Join EC_OrderExtend as oe On(ob.Keyid=oe.Keyid) Inner Join Pay_TradingSingle as ts On(ob.Keyid = ts.OrderId)
left join EC_AwbInfo ea on ob.Keyid = ea.Keyid
where ob.PayState !=-1 and (ob.OrderState = 5 or ob.OrderState = 6 or ob.OrderState = -1 )
group by ob.BuyerId,DATENAME(year, ea.DeliverTime) +'第'+CONVERT(varchar,(month(ea.DeliverTime)+5)/6)+'半年'
) ob on (oc.Keyid=ob.BuyerId )
where oc.Paytime =3
" + where;
fromSouce += @"
UNION
select oc.keyid as BuyerId,oc.[CompanyName] as BuyerName,oc.BusinessManagerId,os.Name as BusinessManager,ob.SumPrice,ob.PayedMoney,ob.shuliang,ob.shoukuanshijian,oc.Paytime
from [OA_CorporateClients] oc
left join OA_Staff os on oc.BusinessManagerId = os.Keyid
inner join [OA_CustomerCommunications] occ on oc.Keyid = occ.Keyid
inner join (
select ob.BuyerId,sum(ob.SumPrice) SumPrice,sum(ts.PayedMoney) PayedMoney ,COUNT(*) as shuliang,DATENAME(year, ea.DeliverTime)+'年' as shoukuanshijian
from EC_OrderBasic ob Inner Join EC_OrderExtend as oe On(ob.Keyid=oe.Keyid) Inner Join Pay_TradingSingle as ts On(ob.Keyid = ts.OrderId)
left join EC_AwbInfo ea on ob.Keyid = ea.Keyid
where ob.PayState !=-1 and (ob.OrderState = 5 or ob.OrderState = 6 or ob.OrderState = -1 )
group by ob.BuyerId,DATENAME(year, ea.DeliverTime)+'年'
) ob on (oc.Keyid=ob.BuyerId )
where oc.Paytime =4
" + where;
fromSouce += @"
UNION
select oc.keyid as BuyerId,oc.[CompanyName] as BuyerName,oc.BusinessManagerId,os.Name as BusinessManager,ob.SumPrice,ob.PayedMoney,ob.shuliang,'履约完毕'shoukuanshijian,oc.Paytime
from [OA_CorporateClients] oc
left join OA_Staff os on oc.BusinessManagerId = os.Keyid
inner join [OA_CustomerCommunications] occ on oc.Keyid = occ.Keyid
inner join (
select ob.BuyerId,sum(ob.SumPrice) SumPrice,sum(ts.PayedMoney) PayedMoney ,COUNT(*) as shuliang
from EC_OrderBasic ob Inner Join EC_OrderExtend as oe On(ob.Keyid=oe.Keyid) Inner Join Pay_TradingSingle as ts On(ob.Keyid = ts.OrderId)
left join EC_AwbInfo ea on ob.Keyid = ea.Keyid
where ob.PayState !=-1 and (ob.OrderState = 5 or ob.OrderState = 6 or ob.OrderState = -1 )
group by ob.BuyerId
) ob on (oc.Keyid=ob.BuyerId )
where oc.Paytime =6 and oc.Shifouwanjie=1
" + where;
fromSouce += @"
UNION
select oc.keyid as BuyerId,oc.[CompanyName] as BuyerName,oc.BusinessManagerId,os.Name as BusinessManager,ob.SumPrice,ob.PayedMoney,ob.shuliang,'交货后'+CONVERT(varchar,oc.Paydays)+'天结'shoukuanshijian,oc.Paytime
from [OA_CorporateClients] oc
left join OA_Staff os on oc.BusinessManagerId = os.Keyid
inner join [OA_CustomerCommunications] occ on oc.Keyid = occ.Keyid
inner join (
select ob.BuyerId,sum(ob.SumPrice) SumPrice,sum(ts.PayedMoney) PayedMoney ,COUNT(*) as shuliang,ea.DeliverTime
from EC_OrderBasic ob Inner Join EC_OrderExtend as oe On(ob.Keyid=oe.Keyid) Inner Join Pay_TradingSingle as ts On(ob.Keyid = ts.OrderId)
left join EC_AwbInfo ea on ob.Keyid = ea.Keyid
where ob.PayState !=-1 and (ob.OrderState = 5 or ob.OrderState = 6 or ob.OrderState = -1 )
group by ob.BuyerId,ea.DeliverTime
) ob on (oc.Keyid=ob.BuyerId and DATEDIFF(day,ob.DeliverTime,GETDATE()) > oc.Paydays)
where oc.Paytime =7
" + where;
fromSouce += @"
UNION
select oc.keyid as BuyerId, oc.[CompanyName] as BuyerName,oc.BusinessManagerId,os.Name as BusinessManager,ob.SumPrice,ob.PayedMoney,ob.shuliang,ob.shoukuanshijian,oc.Paytime
from [OA_CorporateClients] oc
left join OA_Staff os on oc.BusinessManagerId = os.Keyid
inner join [OA_CustomerCommunications] occ on oc.Keyid = occ.Keyid
inner join (
select ob.BuyerId,sum(ob.SumPrice) SumPrice,sum(ts.PayedMoney) PayedMoney ,COUNT(*) as shuliang, case when DATEDIFF(day,ea.DeliverTime,DATENAME(year, ea.DeliverTime)+'-03-01')>0 then CONVERT(varchar,YEAR(ea.DeliverTime)-1)+'至'+CONVERT(varchar,YEAR(ea.DeliverTime))+ '上学期'
when DATEDIFF(day,ea.DeliverTime,DATENAME(year, ea.DeliverTime)+'-09-01')<=0 then CONVERT(varchar,YEAR(ea.DeliverTime))+'至'+CONVERT(varchar,YEAR(ea.DeliverTime)+1)+ '上学期'
else CONVERT(varchar,YEAR(ea.DeliverTime)-1)+'至'+CONVERT(varchar,YEAR(ea.DeliverTime))+'下学期' end as shoukuanshijian
from EC_OrderBasic ob Inner Join EC_OrderExtend as oe On(ob.Keyid=oe.Keyid) Inner Join Pay_TradingSingle as ts On(ob.Keyid = ts.OrderId)
left join EC_AwbInfo ea on ob.Keyid = ea.Keyid
where ob.PayState !=-1 and (ob.OrderState = 5 or ob.OrderState = 6 or ob.OrderState = -1 )
group by ob.BuyerId, case when DATEDIFF(day,ea.DeliverTime,DATENAME(year, ea.DeliverTime)+'-03-01')>0 then CONVERT(varchar,YEAR(ea.DeliverTime)-1)+'至'+CONVERT(varchar,YEAR(ea.DeliverTime))+ '上学期'
when DATEDIFF(day,ea.DeliverTime,DATENAME(year, ea.DeliverTime)+'-09-01')<=0 then CONVERT(varchar,YEAR(ea.DeliverTime))+'至'+CONVERT(varchar,YEAR(ea.DeliverTime)+1)+ '上学期'
else CONVERT(varchar,YEAR(ea.DeliverTime)-1)+'至'+CONVERT(varchar,YEAR(ea.DeliverTime))+'下学期' end
) ob on (oc.Keyid=ob.BuyerId )
where oc.Paytime =5
" + where;
fromSouce += " )as t left join OA_Yujihuikuan oy on t.BuyerId =oy.BuyerId and t.shoukuanshijian = oy.shoukuanshijian ) as t ";
var result = _dataBase.SelectModelPage(pagination, selectTarget, fromSouce, " shoukuanshijian DESC ");//执行查询
return null == result ? null : result;//返回结果
}
///
/// 获取未支付订单的明细
///
///
public IEnumerable GetshoukuantixingorderidList(Guid FirmId, string shoukuanshijian, string Paytime, string BuyerId)
{
string selectTarget = " t.* ";
string where = " and oc.[FirmId] ='" + FirmId + "'";
string fromSouce = " ( ";
if (Paytime == "1")
{
fromSouce += " select ob.keyid as OrderId, ob.BuyerId,convert(char(7), ea.DeliverTime, 120) as shoukuanshijian "+
" from EC_OrderBasic ob Inner Join EC_OrderExtend as oe On(ob.Keyid=oe.Keyid) Inner Join Pay_TradingSingle as ts On(ob.Keyid = ts.OrderId)" +
" left join EC_AwbInfo ea on ob.Keyid = ea.Keyid" +
" where ob.PayState !=-1 and (ob.OrderState = 5 or ob.OrderState = 6 or ob.OrderState = -1 )" +
" and ob.BuyerId='"+ BuyerId + "' and convert(char(7), ea.DeliverTime, 120) ='"+ shoukuanshijian + "'";
}
if (Paytime == "2")
{
fromSouce += " select ob.keyid as OrderId, ob.BuyerId,DATENAME(year, ea.DeliverTime) +'第'+DATENAME(quarter, ea.DeliverTime)+'季度' as shoukuanshijian " +
" from EC_OrderBasic ob Inner Join EC_OrderExtend as oe On(ob.Keyid=oe.Keyid) Inner Join Pay_TradingSingle as ts On(ob.Keyid = ts.OrderId)" +
" left join EC_AwbInfo ea on ob.Keyid = ea.Keyid" +
" where ob.PayState !=-1 and (ob.OrderState = 5 or ob.OrderState = 6 or ob.OrderState = -1 )" +
" and ob.BuyerId='" + BuyerId + "' and DATENAME(year, ea.DeliverTime) +'第'+DATENAME(quarter, ea.DeliverTime)+'季度' ='" + shoukuanshijian + "'";
}
if (Paytime == "3")
{
fromSouce += " select ob.keyid as OrderId, ob.BuyerId, DATENAME(year, ea.DeliverTime) +'第'+CONVERT(varchar,(month(ea.DeliverTime)+5)/6)+'半年' as shoukuanshijian " +
" from EC_OrderBasic ob Inner Join EC_OrderExtend as oe On(ob.Keyid=oe.Keyid) Inner Join Pay_TradingSingle as ts On(ob.Keyid = ts.OrderId)" +
" left join EC_AwbInfo ea on ob.Keyid = ea.Keyid" +
" where ob.PayState !=-1 and (ob.OrderState = 5 or ob.OrderState = 6 or ob.OrderState = -1 )" +
" and ob.BuyerId='" + BuyerId + "' and DATENAME(year, ea.DeliverTime) +'第'+CONVERT(varchar,(month(ea.DeliverTime)+5)/6)+'半年' ='" + shoukuanshijian + "'";
}
if (Paytime == "4")
{
fromSouce += " select ob.keyid as OrderId, ob.BuyerId, DATENAME(year, ea.DeliverTime)+'年' as shoukuanshijian " +
" from EC_OrderBasic ob Inner Join EC_OrderExtend as oe On(ob.Keyid=oe.Keyid) Inner Join Pay_TradingSingle as ts On(ob.Keyid = ts.OrderId)" +
" left join EC_AwbInfo ea on ob.Keyid = ea.Keyid" +
" where ob.PayState !=-1 and (ob.OrderState = 5 or ob.OrderState = 6 or ob.OrderState = -1 )" +
" and ob.BuyerId='" + BuyerId + "' and DATENAME(year, ea.DeliverTime)+'年' ='" + shoukuanshijian + "'";
}
if (Paytime == "5")
{
fromSouce += " select ob.keyid as OrderId, ob.BuyerId, case when DATEDIFF(day,ea.DeliverTime,DATENAME(year, ea.DeliverTime)+'-03-01')>0 then CONVERT(varchar,YEAR(ea.DeliverTime)-1)+'至'+CONVERT(varchar,YEAR(ea.DeliverTime))+ '上学期' " +
" when DATEDIFF(day, ea.DeliverTime, DATENAME(year, ea.DeliverTime)+'-09-01')<= 0 then CONVERT(varchar, YEAR(ea.DeliverTime))+'至' + CONVERT(varchar, YEAR(ea.DeliverTime) + 1) + '上学期' " +
" else CONVERT(varchar, YEAR(ea.DeliverTime) - 1) + '至' + CONVERT(varchar, YEAR(ea.DeliverTime)) + '下学期' end as shoukuanshijian " +
" from EC_OrderBasic ob Inner Join EC_OrderExtend as oe On(ob.Keyid=oe.Keyid) Inner Join Pay_TradingSingle as ts On(ob.Keyid = ts.OrderId)" +
" left join EC_AwbInfo ea on ob.Keyid = ea.Keyid" +
" where ob.PayState !=-1 and (ob.OrderState = 5 or ob.OrderState = 6 or ob.OrderState = -1 )" +
" and ob.BuyerId='" + BuyerId + "' and case when DATEDIFF(day,ea.DeliverTime,DATENAME(year, ea.DeliverTime)+'-03-01')>0 then CONVERT(varchar,YEAR(ea.DeliverTime)-1)+'至'+CONVERT(varchar,YEAR(ea.DeliverTime))+ '上学期' " +
" when DATEDIFF(day, ea.DeliverTime, DATENAME(year, ea.DeliverTime)+'-09-01')<= 0 then CONVERT(varchar, YEAR(ea.DeliverTime))+'至' + CONVERT(varchar, YEAR(ea.DeliverTime) + 1) + '上学期' " +
" else CONVERT(varchar, YEAR(ea.DeliverTime) - 1) + '至' + CONVERT(varchar, YEAR(ea.DeliverTime)) + '下学期' end ='" + shoukuanshijian + "'";
}
if (Paytime == "6")
{
fromSouce += " select ob.keyid as OrderId, ob.BuyerId " +
" from EC_OrderBasic ob Inner Join EC_OrderExtend as oe On(ob.Keyid=oe.Keyid) Inner Join Pay_TradingSingle as ts On(ob.Keyid = ts.OrderId)" +
" left join EC_AwbInfo ea on ob.Keyid = ea.Keyid " +
" where ob.PayState !=-1 and (ob.OrderState = 5 or ob.OrderState = 6 or ob.OrderState = -1 )" +
" and ob.BuyerId='" + BuyerId + "' ";
}
if (Paytime == "7")
{
fromSouce += " select ob.keyid as OrderId, ob.BuyerId, ea.DeliverTime as shoukuanshijian " +
" from EC_OrderBasic ob Inner Join EC_OrderExtend as oe On(ob.Keyid=oe.Keyid) Inner Join Pay_TradingSingle as ts On(ob.Keyid = ts.OrderId)" +
" left join EC_AwbInfo ea on ob.Keyid = ea.Keyid " +
" inner join [OA_CorporateClients] oc on oc.Keyid=ob.BuyerId and DATEDIFF(day,ea.DeliverTime,GETDATE()) > oc.Paydays " +
" where ob.PayState !=-1 and (ob.OrderState = 5 or ob.OrderState = 6 or ob.OrderState = -1 )" +
" and ob.BuyerId='" + BuyerId + "' ";
}
fromSouce += " )as t order by OrderId DESC ";
var result = _dataBase.SelectModel( selectTarget, fromSouce );//执行查询
return null == result ? null : result;//返回结果
}
///
/// 获取已支付订单的明细
///
///
public IEnumerable GetxiaoshouchaxunList(Infrastructure.Query.Pagination pagination, Guid FirmId, string province, string city, string county, string DegreeImportanId, string CompanyName, string BusinessManagerId, string CreditId, string Shifouwanjie
, string selLastOrderTime, string selOrderCount, string selOrderMoney, string OrderCount, string OrderMoney, string LastOrderTime)
{
string selectTarget = " t.* ";
string where = " where oc.[FirmId] ='" + FirmId + "'";
if (!string.IsNullOrEmpty(province))
{
where += " and occ.Province='" + province + "'";
}
if (!string.IsNullOrEmpty(city))
{
where += " and occ.City='" + city + "'";
}
if (!string.IsNullOrEmpty(county))
{
where += " and occ.County='" + county + "'";
}
if (!string.IsNullOrEmpty(DegreeImportanId))
{
where += " and oc.DegreeImportanId='" + DegreeImportanId + "'";
}
if (!string.IsNullOrEmpty(CompanyName))
{
where += " and oc.CompanyName like '%" + CompanyName + "%'";
}
if (!string.IsNullOrEmpty(BusinessManagerId))
{
where += " and oc.BusinessManagerId='" + BusinessManagerId + "'";
}
if (!string.IsNullOrEmpty(CreditId))
{
where += " and oc.CreditId='" + CreditId + "'";
}
if (!string.IsNullOrEmpty(Shifouwanjie))
{
where += " and oc.Shifouwanjie='" + Shifouwanjie + "'";
}
if (!string.IsNullOrEmpty(selLastOrderTime) && !string.IsNullOrEmpty(LastOrderTime))
where += string.Format(" and CAST(getdate()-{1} AS date) {0} CAST(oc.LastOrderTime AS DATE)", selLastOrderTime, LastOrderTime);
if (!string.IsNullOrEmpty(selOrderCount) && !string.IsNullOrEmpty(OrderCount))
where += string.Format(" and oc.OrderCount{0}'{1}'", selOrderCount, OrderCount);
if (!string.IsNullOrEmpty(selOrderMoney) && !string.IsNullOrEmpty(OrderMoney))
where += string.Format(" and oc.OrderMoney{0}'{1}'", selOrderMoney, OrderMoney);
string fromSouce = "( ";
fromSouce += @"
select occ.Province+occ.City+occ.County as quyu ,oc.CompanyName as BuyerName,os.Name as BusinessManager,oc.CreateTime,contracttype.Name as ContracttypeName,oc.Contractmoney
,expiretype.Name as ExpiretypeName,oc.ExpireTime,ob.SumPrice, ob.PayedMoney,oc.CustomerId
from [OA_CorporateClients] oc
inner join [OA_CustomerCommunications] occ on oc.Keyid = occ.Keyid
left join OA_Staff os on oc.BusinessManagerId = os.Keyid
left join [Sys_Dictionary] contracttype on contracttype.DicType='合同金额' and contracttype.MeanValue = oc.Contracttype
left join [Sys_Dictionary] expiretype on expiretype.DicType='到期时间' and expiretype.MeanValue = oc.Expiretype
left join ( select ob.BuyerId,sum(ob.SumPrice) SumPrice,sum(ts.PayedMoney) PayedMoney ,COUNT(*) as shuliang
from EC_OrderBasic ob Inner Join EC_OrderExtend as oe On(ob.Keyid=oe.Keyid) Inner Join Pay_TradingSingle as ts On(ob.Keyid = ts.OrderId)
left join EC_AwbInfo ea on ob.Keyid = ea.Keyid
group by ob.BuyerId ) ob on oc.Keyid = ob.BuyerId
" + where;
fromSouce += " )as t ";
var result = _dataBase.SelectModelPage(pagination, selectTarget, fromSouce, " CreateTime DESC ");//执行查询
return null == result ? null : result;//返回结果
}
///
/// 获取业务经理业绩
///
///
public IEnumerable GetxiaoshouyejiList(Infrastructure.Query.Pagination pagination, Guid FirmId, string BusinessManagerId, string chaxuntime)
{
string selectTarget = " t.* ";
string where = " and os.[FirmId] ='" + FirmId + "'";
if (!string.IsNullOrEmpty(BusinessManagerId))
{
where += " and os.Keyid='" + BusinessManagerId + "'";
}
string fromSouce = "( ";
fromSouce += " select os.DepartmentId,os.[Name] as BusinessManager ,os.[Keyid] as BusinessManagerId, os.FirmId,gendan.gendanshuliang,xinzeng.xinzengshuliang,wanjie.wanjieshuliang,xiadan.xiadanshuliang,ob.shuliang,ob.SumPrice,ob.PayedMoney,eob.kaipiaojine,huifang.huifangshuliang ,'"+ chaxuntime + "' as chaxuntime ";
fromSouce += " from [OA_Staff] os ";
fromSouce += " left join ( select COUNT(*) gendanshuliang ,oc.BusinessManagerId from OA_CorporateClients oc where ( oc.Shifouwanjie is null or oc.Shifouwanjie=2 ) and DATEDIFF(MONTH,oc.CreateTime,'" + chaxuntime + "') >=0 group by oc.BusinessManagerId ) gendan on gendan.BusinessManagerId = os.Keyid ";
fromSouce += " left join ( select COUNT(*) xinzengshuliang ,oc.BusinessManagerId from OA_CorporateClients oc where DATEDIFF(MONTH,oc.CreateTime,'"+ chaxuntime + "') =0 group by oc.BusinessManagerId ) xinzeng on xinzeng.BusinessManagerId = os.Keyid ";
fromSouce += " left join ( select COUNT(*) wanjieshuliang ,oc.BusinessManagerId from OA_CorporateClients oc where oc.Shifouwanjie=1 and DATEDIFF(MONTH,oc.[LastUpdateTime],'" + chaxuntime + "') =0 group by oc.BusinessManagerId ) wanjie on wanjie.BusinessManagerId = os.Keyid ";
fromSouce += " left join ( select COUNT( distinct oc.Keyid) xiadanshuliang ,oc.BusinessManagerId from OA_CorporateClients oc Inner Join EC_OrderBasic ob On oc.Keyid=ob.[BuyerId] where DATEDIFF(MONTH,ob.CreateTime,'" + chaxuntime + "') =0 group by oc.BusinessManagerId ) xiadan on xiadan.BusinessManagerId = os.Keyid ";
fromSouce += " left join ( select COUNT(*) huifangshuliang,occ.Creater as BusinessManagerId from OA_CorporateClientsVisit occ where DATEDIFF(MONTH,occ.[VisitTime],'" + chaxuntime + "') =0 group by occ.Creater ) huifang on huifang.BusinessManagerId = os.MemberId ";
fromSouce += " left join ( select oc.BusinessManagerId,sum(ob.SumPrice) SumPrice,sum(ts.PayedMoney) PayedMoney ,COUNT(*) as shuliang ";
fromSouce += " from EC_OrderBasic ob ";
fromSouce += " Inner Join EC_OrderExtend as oe On(ob.Keyid=oe.Keyid) ";
fromSouce += " Inner Join Pay_TradingSingle as ts On(ob.Keyid = ts.OrderId) ";
fromSouce += " Inner Join OA_CorporateClients as oc On(ob.BuyerId = oc.Keyid) ";
fromSouce += " left join EC_AwbInfo ea on ob.Keyid = ea.Keyid where DATEDIFF(MONTH,ob.CreateTime,'" + chaxuntime + "') =0 ";
fromSouce += " group by oc.BusinessManagerId ) ob on os.Keyid = ob.BusinessManagerId ";
fromSouce += " left join ( select oc.BusinessManagerId,sum(ob.SumPrice) kaipiaojine ";
fromSouce += " from EC_OrderBasic ob ";
fromSouce += " Inner Join EC_OrderExtend as oe On(ob.Keyid=oe.Keyid) ";
fromSouce += " Inner Join OA_CorporateClients as oc On(ob.BuyerId = oc.Keyid) ";
fromSouce += " left join EC_AwbInfo ea on ob.Keyid = ea.Keyid ";
fromSouce += " left join OA_Kaipiaoshenqing ks on ks.Keyid = oe.KaipiaoshenqingId ";
fromSouce += " where ks.Kaipiaoshenqing = 3 and DATEDIFF(MONTH,ob.CreateTime,'" + chaxuntime + "') =0 ";
fromSouce += " group by oc.BusinessManagerId ) eob on os.Keyid = eob.BusinessManagerId ";
fromSouce += " where os.Status='在职' And IsBusinessManager='true' " + where;
fromSouce += " )as t ";
var result = _dataBase.SelectModelPage(pagination, selectTarget, fromSouce, " DepartmentId ASC");//执行查询
return null == result ? null : result;//返回结果
}
///
/// 获取业务经理业绩
///
///
public IEnumerable GetyewurenportList(Infrastructure.Query.Pagination pagination, Guid FirmId, string BusinessManagerId, string chaxuntimestart, string chaxuntimeend)
{
string selectTarget = " t.* ";
string where = " and os.[FirmId] ='" + FirmId + "'";
if (!string.IsNullOrEmpty(BusinessManagerId))
{
where += " and os.Keyid='" + BusinessManagerId + "'";
}
string fromSouce = "( ";
fromSouce += " select os.DepartmentId,os.[Name] as BusinessManager ,os.[Keyid] as BusinessManagerId, os.FirmId,gendan.gendanshuliang,xinzeng.xinzengshuliang,wanjie.wanjieshuliang,xiadan.xiadanshuliang,ob.shuliang,ob.SumPrice,ob.PayedMoney,eob.kaipiaojine,huifang.huifangshuliang ,'" + chaxuntimestart + "' as chaxuntimestart ,'" + chaxuntimeend + "' as chaxuntimeend ,obhuikuan.huikuankehu,obweihuikuan.weihuikuankehu ";
fromSouce += " from [OA_Staff] os ";
fromSouce += " left join ( select COUNT(*) gendanshuliang ,oc.BusinessManagerId from OA_CorporateClients oc where ( oc.Shifouwanjie is null or oc.Shifouwanjie=2 ) and DATEDIFF(DAY,oc.CreateTime,'" + chaxuntimestart + "') <=0 and DATEDIFF(DAY,oc.CreateTime,'" + chaxuntimeend + "') >=0 group by oc.BusinessManagerId ) gendan on gendan.BusinessManagerId = os.Keyid ";
fromSouce += " left join ( select COUNT(*) xinzengshuliang ,oc.BusinessManagerId from OA_CorporateClients oc where DATEDIFF(DAY,oc.CreateTime,'" + chaxuntimestart + "') <=0 and DATEDIFF(DAY,oc.CreateTime,'" + chaxuntimeend + "') >=0 group by oc.BusinessManagerId ) xinzeng on xinzeng.BusinessManagerId = os.Keyid ";
fromSouce += " left join ( select COUNT(*) wanjieshuliang ,oc.BusinessManagerId from OA_CorporateClients oc where oc.Shifouwanjie=1 and DATEDIFF(DAY,oc.[LastUpdateTime],'" + chaxuntimestart + "') <=0 and DATEDIFF(DAY,oc.[LastUpdateTime],'" + chaxuntimeend + "') >=0 group by oc.BusinessManagerId ) wanjie on wanjie.BusinessManagerId = os.Keyid ";
fromSouce += " left join ( select COUNT( distinct oc.Keyid) xiadanshuliang ,oc.BusinessManagerId from OA_CorporateClients oc Inner Join EC_OrderBasic ob On oc.Keyid=ob.[BuyerId] where DATEDIFF(DAY,ob.CreateTime,'" + chaxuntimestart + "') <=0 and DATEDIFF(DAY,ob.CreateTime,'" + chaxuntimeend + "') >=0 group by oc.BusinessManagerId ) xiadan on xiadan.BusinessManagerId = os.Keyid ";
fromSouce += " left join ( select COUNT(*) huifangshuliang,occ.Creater as BusinessManagerId from OA_CorporateClientsVisit occ where DATEDIFF(DAY,occ.[VisitTime],'" + chaxuntimestart + "') <=0 and DATEDIFF(DAY,occ.[VisitTime],'" + chaxuntimeend + "') >=0 group by occ.Creater ) huifang on huifang.BusinessManagerId = os.MemberId ";
fromSouce += " left join ( select oc.BusinessManagerId,sum(ob.SumPrice) SumPrice,sum(ts.PayedMoney) PayedMoney ,COUNT(*) as shuliang ";
fromSouce += " from EC_OrderBasic ob ";
fromSouce += " Inner Join EC_OrderExtend as oe On(ob.Keyid=oe.Keyid) ";
fromSouce += " Inner Join Pay_TradingSingle as ts On(ob.Keyid = ts.OrderId) ";
fromSouce += " Inner Join OA_CorporateClients as oc On(ob.BuyerId = oc.Keyid) ";
fromSouce += " left join EC_AwbInfo ea on ob.Keyid = ea.Keyid where DATEDIFF(DAY,ob.CreateTime,'" + chaxuntimestart + "') <=0 and DATEDIFF(DAY,ob.CreateTime,'" + chaxuntimeend + "') >=0 ";
fromSouce += " group by oc.BusinessManagerId ) ob on os.Keyid = ob.BusinessManagerId ";
fromSouce += " left join ( select oc.BusinessManagerId ,COUNT( distinct ob.BuyerId ) as huikuankehu ";
fromSouce += " from EC_OrderBasic ob ";
fromSouce += " Inner Join EC_OrderExtend as oe On(ob.Keyid=oe.Keyid) ";
fromSouce += " Inner Join Pay_TradingSingle as ts On(ob.Keyid = ts.OrderId) ";
fromSouce += " Inner Join OA_CorporateClients as oc On(ob.BuyerId = oc.Keyid) ";
fromSouce += " left join EC_AwbInfo ea on ob.Keyid = ea.Keyid where DATEDIFF(DAY,ob.CreateTime,'" + chaxuntimestart + "') <=0 and DATEDIFF(DAY,ob.CreateTime,'" + chaxuntimeend + "') >=0 and ob.PayState = -1 ";
fromSouce += " group by oc.BusinessManagerId ) obhuikuan on os.Keyid = ob.BusinessManagerId ";
fromSouce += " left join ( select oc.BusinessManagerId ,COUNT( distinct ob.BuyerId ) as weihuikuankehu ";
fromSouce += " from EC_OrderBasic ob ";
fromSouce += " Inner Join EC_OrderExtend as oe On(ob.Keyid=oe.Keyid) ";
fromSouce += " Inner Join Pay_TradingSingle as ts On(ob.Keyid = ts.OrderId) ";
fromSouce += " Inner Join OA_CorporateClients as oc On(ob.BuyerId = oc.Keyid) ";
fromSouce += " left join EC_AwbInfo ea on ob.Keyid = ea.Keyid where DATEDIFF(DAY,ob.CreateTime,'" + chaxuntimestart + "') <=0 and DATEDIFF(DAY,ob.CreateTime,'" + chaxuntimeend + "') >=0 and ob.PayState != -1 ";
fromSouce += " group by oc.BusinessManagerId ) obweihuikuan on os.Keyid = ob.BusinessManagerId ";
fromSouce += " left join ( select oc.BusinessManagerId,sum(ob.SumPrice) kaipiaojine ";
fromSouce += " from EC_OrderBasic ob ";
fromSouce += " Inner Join EC_OrderExtend as oe On(ob.Keyid=oe.Keyid) ";
fromSouce += " Inner Join OA_CorporateClients as oc On(ob.BuyerId = oc.Keyid) ";
fromSouce += " left join EC_AwbInfo ea on ob.Keyid = ea.Keyid ";
fromSouce += " left join OA_Kaipiaoshenqing ks on ks.Keyid = oe.KaipiaoshenqingId ";
fromSouce += " where ks.Kaipiaoshenqing = 3 and DATEDIFF(DAY,ob.CreateTime,'" + chaxuntimestart + "') <=0 and DATEDIFF(DAY,ob.CreateTime,'" + chaxuntimeend + "') >=0 ";
fromSouce += " group by oc.BusinessManagerId ) eob on os.Keyid = eob.BusinessManagerId ";
fromSouce += " where os.Status='在职' And IsBusinessManager='true' " + where;
fromSouce += " )as t ";
var result = _dataBase.SelectModelPage(pagination, selectTarget, fromSouce, " DepartmentId ASC");//执行查询
return null == result ? null : result;//返回结果
}
}
}