using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using CY.IDAL;
|
using System.Data.SqlClient;
|
using System.Data;
|
using CY.Model;
|
using System.Transactions;
|
namespace CY.SQLDAL
|
{
|
//软件销售记录
|
public class Soft_SellRecordDAL : ISoft_SellRecordDAL
|
{
|
private Database _dataBase = null;
|
|
public Soft_SellRecordDAL()
|
{
|
_dataBase = new Database();
|
}
|
|
public Soft_SellRecordDAL(Database dataBase)
|
{
|
_dataBase = dataBase;
|
}
|
|
/// <summary>
|
/// 新增
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
public bool InserModel(Infrastructure.Domain.IAggregateRoot model)
|
{
|
Model.Soft_SellRecord trueModel = model as Model.Soft_SellRecord;
|
if (trueModel == null)
|
{
|
return false;
|
}
|
IList<SqlParameter> sqlParms = new List<SqlParameter>()
|
{
|
new SqlParameter("@ClientId", trueModel.ClientId) ,
|
new SqlParameter("@ClientName", trueModel.ClientName) ,
|
new SqlParameter("@AccountManagerId", trueModel.AccountManagerId) ,
|
new SqlParameter("@BusinessManagerId", trueModel.BusinessManagerId) ,
|
new SqlParameter("@SoftId", trueModel.SoftId) ,
|
new SqlParameter("@SoftName", trueModel.SoftName) ,
|
new SqlParameter("@SoftQuantity", trueModel.SoftQuantity) ,
|
new SqlParameter("@SoftUnitprice", trueModel.SoftUnitprice) ,
|
new SqlParameter("@OrderMoney", trueModel.OrderMoney) ,
|
new SqlParameter("@OrderReceiveMoney", trueModel.OrderReceiveMoney) ,
|
new SqlParameter("@OrderStatus", trueModel.OrderStatus) ,
|
new SqlParameter("@OrderNum", trueModel.OrderNum) ,
|
new SqlParameter("@CreatTime", trueModel.CreatTime) ,
|
new SqlParameter("@LastUpdateTime", trueModel.LastUpdateTime) ,
|
new SqlParameter("@Operator", trueModel.Operator) ,
|
new SqlParameter("@VisitStatus", trueModel.VisitStatus) ,
|
new SqlParameter("@VisitSoftScore", trueModel.VisitSoftScore) ,
|
new SqlParameter("@VisitSoftServers", trueModel.VisitSoftServers) ,
|
new SqlParameter("@VisitReason", trueModel.VisitReason) ,
|
new SqlParameter("@VisitProposal", trueModel.VisitProposal) ,
|
new SqlParameter("@VisitPeople", trueModel.VisitPeople) ,
|
new SqlParameter("@VisitTime", trueModel.VisitTime) ,
|
new SqlParameter("@DegreeImportanId", trueModel.DegreeImportanId) ,
|
new SqlParameter("@Mobile", trueModel.Mobile) ,
|
new SqlParameter("@QQ", trueModel.QQ) ,
|
new SqlParameter("@OrderRemark", trueModel.OrderRemark)
|
};
|
try
|
{
|
_dataBase.Query("sp_Soft_SellRecord_Insert", CommandType.StoredProcedure, sqlParms.ToArray<SqlParameter>());
|
}
|
catch (Exception ex)
|
{
|
throw ex;
|
}
|
return true;
|
}
|
|
/// <summary>
|
/// 修改
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
public bool UpdateModel(Infrastructure.Domain.IAggregateRoot model)
|
{
|
Model.Soft_SellRecord trueModel = model as Model.Soft_SellRecord;
|
if (trueModel == null)
|
{
|
return false;
|
}
|
IList<SqlParameter> sqlParms = new List<SqlParameter>()
|
{
|
new SqlParameter("@Keyid", trueModel.Keyid) ,
|
new SqlParameter("@ClientId", trueModel.ClientId) ,
|
new SqlParameter("@ClientName", trueModel.ClientName) ,
|
new SqlParameter("@AccountManagerId", trueModel.AccountManagerId) ,
|
new SqlParameter("@BusinessManagerId", trueModel.BusinessManagerId) ,
|
new SqlParameter("@SoftId", trueModel.SoftId) ,
|
new SqlParameter("@SoftName", trueModel.SoftName) ,
|
new SqlParameter("@SoftQuantity", trueModel.SoftQuantity) ,
|
new SqlParameter("@SoftUnitprice", trueModel.SoftUnitprice) ,
|
new SqlParameter("@OrderMoney", trueModel.OrderMoney) ,
|
new SqlParameter("@OrderReceiveMoney", trueModel.OrderReceiveMoney) ,
|
new SqlParameter("@OrderStatus", trueModel.OrderStatus) ,
|
new SqlParameter("@OrderNum", trueModel.OrderNum) ,
|
new SqlParameter("@CreatTime", trueModel.CreatTime) ,
|
new SqlParameter("@LastUpdateTime", trueModel.LastUpdateTime) ,
|
new SqlParameter("@Operator", trueModel.Operator) ,
|
new SqlParameter("@VisitStatus", trueModel.VisitStatus) ,
|
new SqlParameter("@VisitSoftScore", trueModel.VisitSoftScore) ,
|
new SqlParameter("@VisitSoftServers", trueModel.VisitSoftServers) ,
|
new SqlParameter("@VisitReason", trueModel.VisitReason) ,
|
new SqlParameter("@VisitProposal", trueModel.VisitProposal) ,
|
new SqlParameter("@VisitPeople", trueModel.VisitPeople) ,
|
new SqlParameter("@VisitTime", trueModel.VisitTime) ,
|
new SqlParameter("@DegreeImportanId", trueModel.DegreeImportanId) ,
|
new SqlParameter("@Mobile", trueModel.Mobile) ,
|
new SqlParameter("@QQ", trueModel.QQ) ,
|
new SqlParameter("@OrderRemark", trueModel.OrderRemark)
|
};
|
try
|
{
|
_dataBase.Query("sp_Soft_SellRecord_Update", CommandType.StoredProcedure, sqlParms.ToArray<SqlParameter>());
|
}
|
catch (Exception ex)
|
{
|
throw ex;
|
}
|
return true;
|
}
|
|
/// <summary>
|
/// 删除
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
public bool DeleteModel(Infrastructure.Domain.IAggregateRoot model)
|
{
|
Model.Soft_SellRecord trueModel = model as Model.Soft_SellRecord;
|
if (trueModel == null)
|
{
|
return false;
|
}
|
IList<SqlParameter> sqlParms = new List<SqlParameter>()
|
{
|
new SqlParameter("@Keyid",trueModel.Keyid)
|
};
|
try
|
{
|
_dataBase.Query("sp_Soft_SellRecord_DeleteRow", CommandType.StoredProcedure, sqlParms.ToArray<SqlParameter>());
|
}
|
catch (Exception ex)
|
{
|
throw ex;
|
}
|
|
return true;
|
}
|
|
/// <summary>
|
/// 分页查询
|
/// </summary>
|
/// <param name="query"></param>
|
/// <param name="pagination"></param>
|
/// <returns></returns>
|
public IEnumerable<Model.Soft_SellRecord> SelectModelPage(Infrastructure.Query.Query query, Infrastructure.Query.Pagination pagination)
|
{
|
throw new NotImplementedException();
|
}
|
|
/// <summary>
|
/// 单个查询
|
/// </summary>
|
/// <param name="query"></param>
|
/// <returns></returns>
|
public IEnumerable<Model.Soft_SellRecord> SelectAllModel(Infrastructure.Query.Query query)
|
{
|
throw new NotImplementedException();
|
}
|
|
/// <summary>
|
/// 根据编号获得信息
|
/// </summary>
|
/// <param name="Keyid">编号</param>
|
/// <returns></returns>
|
public Soft_SellRecord GetModelByKeyid(int? Keyid)
|
{
|
try
|
{
|
if (Keyid == null || Keyid < 0)
|
return null;//错误数据返会空
|
|
IList<Soft_SellRecord> result = _dataBase.SelectModel<Soft_SellRecord>(" a.*,b.Name AS AccountManagerName,c.Name AS BusinessManagerName,d.Name AS DegreeImportanName ", " dbo.Soft_SellRecord AS a LEFT JOIN dbo.OA_Staff AS b ON a.AccountManagerId = b.Keyid LEFT JOIN dbo.OA_Staff AS c ON a.BusinessManagerId = c.Keyid LEFT JOIN dbo.Sys_Dictionary AS d ON a.DegreeImportanId = d.Keyid ", string.Format(" a.Keyid='{0}' ", Keyid)) as IList<Soft_SellRecord>;//执行查询
|
|
return (null == result || result.Count == 0) ? null : result[0];//返回结果
|
}
|
catch (Exception ex)
|
{
|
throw ex;
|
}
|
}
|
|
/// <summary>
|
/// 分页查询
|
/// </summary>
|
/// <param name="pagination"></param>
|
/// <returns></returns>
|
public IEnumerable<Model.Soft_SellRecord> SelectModelPage(Infrastructure.Query.Pagination pagination, int? _ClientId, string _ClientName, int? _AccountManagerId, int? _BusinessManagerId, int? _SoftId, string _SoftName, int? _SoftQuantity, int? _SoftUnitprice, int? _OrderMoney, int? _OrderReceiveMoney, int? _OrderStatus, string _OrderNum, DateTime? _BeginCreatTime, DateTime? _EndCreatTime, DateTime? _BeginLastUpdateTime, DateTime? _EndLastUpdateTime, string _Operator, int? _VisitStatus, string _VisitSoftScore, string _VisitSoftServers, string _VisitReason, string _VisitProposal, string _VisitPeople, DateTime? _BeginVisitTime, DateTime? _EndVisitTime, int? _DegreeImportanId, string _Mobile, string _QQ,int? _MoneyStatus)
|
{
|
try
|
{
|
string condition = " 1=1 ";
|
|
if (_ClientId.HasValue)
|
condition += " and ClientId = '" + _ClientId + "' ";
|
|
if (!string.IsNullOrEmpty(_ClientName))
|
condition += " and ClientName like '%" + _ClientName + "%' ";
|
|
if (_AccountManagerId.HasValue)
|
condition += " and AccountManagerId = '" + _AccountManagerId + "' ";
|
|
if (_BusinessManagerId.HasValue)
|
condition += " and BusinessManagerId = '" + _BusinessManagerId + "' ";
|
|
if (_SoftId.HasValue)
|
condition += " and SoftId = '" + _SoftId + "' ";
|
|
if (!string.IsNullOrEmpty(_SoftName))
|
condition += " and SoftName = '" + _SoftName + "' ";
|
|
if (_SoftQuantity.HasValue)
|
condition += " and SoftQuantity = '" + _SoftQuantity + "' ";
|
|
if (_SoftUnitprice.HasValue)
|
condition += " and SoftUnitprice = '" + _SoftUnitprice + "' ";
|
|
if (_OrderMoney.HasValue)
|
condition += " and OrderMoney = '" + _OrderMoney + "' ";
|
|
if (_OrderReceiveMoney.HasValue)
|
condition += " and OrderReceiveMoney = '" + _OrderReceiveMoney + "' ";
|
|
if (_OrderStatus.HasValue)
|
condition += " and OrderStatus = '" + _OrderStatus + "' ";
|
|
if (!string.IsNullOrEmpty(_OrderNum))
|
condition += " and OrderNum like '%" + _OrderNum + "%' ";
|
|
if (_BeginCreatTime.HasValue)
|
condition += string.Format(" and CAST(CreatTime AS DATE) >='{0}' ", _BeginCreatTime);
|
|
if (_EndCreatTime.HasValue)
|
condition += string.Format(" and CAST(CreatTime AS DATE) <='{0}' ", _EndCreatTime);
|
|
if (_BeginLastUpdateTime.HasValue)
|
condition += string.Format(" and CAST(LastUpdateTime AS DATE) >='{0}' ", _BeginLastUpdateTime);
|
|
if (_EndLastUpdateTime.HasValue)
|
condition += string.Format(" and CAST(LastUpdateTime AS DATE) <='{0}' ", _EndLastUpdateTime);
|
|
if (!string.IsNullOrEmpty(_Operator))
|
condition += " and Operator = '" + _Operator + "' ";
|
|
if (_VisitStatus.HasValue)
|
condition += " and VisitStatus = '" + _VisitStatus + "' ";
|
|
if (!string.IsNullOrEmpty(_VisitSoftScore))
|
condition += " and VisitSoftScore = '" + _VisitSoftScore + "' ";
|
|
if (!string.IsNullOrEmpty(_VisitSoftServers))
|
condition += " and VisitSoftServers = '" + _VisitSoftServers + "' ";
|
|
if (!string.IsNullOrEmpty(_VisitReason))
|
condition += " and VisitReason = '" + _VisitReason + "' ";
|
|
if (!string.IsNullOrEmpty(_VisitProposal))
|
condition += " and VisitProposal = '" + _VisitProposal + "' ";
|
|
if (!string.IsNullOrEmpty(_VisitPeople))
|
condition += " and VisitPeople = '" + _VisitPeople + "' ";
|
|
if (_BeginVisitTime.HasValue)
|
condition += string.Format(" and CAST(VisitTime AS DATE) >='{0}' ", _BeginVisitTime);
|
|
if (_EndVisitTime.HasValue)
|
condition += string.Format(" and CAST(VisitTime AS DATE) <='{0}' ", _EndVisitTime);
|
|
if (_DegreeImportanId.HasValue)
|
condition += " and DegreeImportanId = '" + _DegreeImportanId + "' ";
|
|
if (!string.IsNullOrEmpty(_Mobile))
|
condition += " and Mobile = '" + _Mobile + "' ";
|
|
if (!string.IsNullOrEmpty(_QQ))
|
condition += " and QQ = '" + _QQ + "' ";
|
|
if (_MoneyStatus.HasValue)
|
{
|
switch (_MoneyStatus)
|
{
|
case 1:
|
condition += " and OrderReceiveMoney >= OrderMoney ";
|
break;
|
case 2:
|
condition += " and OrderReceiveMoney = '0' ";
|
break;
|
case 3:
|
condition += " and OrderReceiveMoney < OrderMoney and OrderReceiveMoney > 0 ";
|
break;
|
default:
|
break;
|
}
|
}
|
|
return _dataBase.SelectModelPage<Model.Soft_SellRecord>(pagination, " * ", " Soft_SellRecord ", " Keyid desc", " Keyid desc ", condition);
|
}
|
catch (Exception ex)
|
{
|
throw ex;
|
}
|
}
|
|
/// <summary>
|
/// 统计金额
|
/// </summary>
|
/// <param name="pagination"></param>
|
/// <returns></returns>
|
public Model.Soft_SellRecord OrderAllMoney(Infrastructure.Query.Pagination pagination, int? _ClientId, string _ClientName, int? _AccountManagerId, int? _BusinessManagerId, int? _SoftId, string _SoftName, int? _SoftQuantity, int? _SoftUnitprice, int? _OrderMoney, int? _OrderReceiveMoney, int? _OrderStatus, string _OrderNum, DateTime? _BeginCreatTime, DateTime? _EndCreatTime, DateTime? _BeginLastUpdateTime, DateTime? _EndLastUpdateTime, string _Operator, int? _VisitStatus, string _VisitSoftScore, string _VisitSoftServers, string _VisitReason, string _VisitProposal, string _VisitPeople, DateTime? _BeginVisitTime, DateTime? _EndVisitTime, int? _DegreeImportanId, string _Mobile, string _QQ, int? _MoneyStatus)
|
{
|
try
|
{
|
string condition = " 1=1 ";
|
|
if (_ClientId.HasValue)
|
condition += " and ClientId = '" + _ClientId + "' ";
|
|
if (!string.IsNullOrEmpty(_ClientName))
|
condition += " and ClientName like '%" + _ClientName + "%' ";
|
|
if (_AccountManagerId.HasValue)
|
condition += " and AccountManagerId = '" + _AccountManagerId + "' ";
|
|
if (_BusinessManagerId.HasValue)
|
condition += " and BusinessManagerId = '" + _BusinessManagerId + "' ";
|
|
if (_SoftId.HasValue)
|
condition += " and SoftId = '" + _SoftId + "' ";
|
|
if (!string.IsNullOrEmpty(_SoftName))
|
condition += " and SoftName = '" + _SoftName + "' ";
|
|
if (_SoftQuantity.HasValue)
|
condition += " and SoftQuantity = '" + _SoftQuantity + "' ";
|
|
if (_SoftUnitprice.HasValue)
|
condition += " and SoftUnitprice = '" + _SoftUnitprice + "' ";
|
|
if (_OrderMoney.HasValue)
|
condition += " and OrderMoney = '" + _OrderMoney + "' ";
|
|
if (_OrderReceiveMoney.HasValue)
|
condition += " and OrderReceiveMoney = '" + _OrderReceiveMoney + "' ";
|
|
if (_OrderStatus.HasValue)
|
condition += " and OrderStatus = '" + _OrderStatus + "' ";
|
|
if (!string.IsNullOrEmpty(_OrderNum))
|
condition += " and OrderNum like '%" + _OrderNum + "%' ";
|
|
if (_BeginCreatTime.HasValue)
|
condition += string.Format(" and CAST(CreatTime AS DATE) >='{0}' ", _BeginCreatTime);
|
|
if (_EndCreatTime.HasValue)
|
condition += string.Format(" and CAST(CreatTime AS DATE) <='{0}' ", _EndCreatTime);
|
|
if (_BeginLastUpdateTime.HasValue)
|
condition += string.Format(" and CAST(LastUpdateTime AS DATE) >='{0}' ", _BeginLastUpdateTime);
|
|
if (_EndLastUpdateTime.HasValue)
|
condition += string.Format(" and CAST(LastUpdateTime AS DATE) <='{0}' ", _EndLastUpdateTime);
|
|
if (!string.IsNullOrEmpty(_Operator))
|
condition += " and Operator = '" + _Operator + "' ";
|
|
if (_VisitStatus.HasValue)
|
condition += " and VisitStatus = '" + _VisitStatus + "' ";
|
|
if (!string.IsNullOrEmpty(_VisitSoftScore))
|
condition += " and VisitSoftScore = '" + _VisitSoftScore + "' ";
|
|
if (!string.IsNullOrEmpty(_VisitSoftServers))
|
condition += " and VisitSoftServers = '" + _VisitSoftServers + "' ";
|
|
if (!string.IsNullOrEmpty(_VisitReason))
|
condition += " and VisitReason = '" + _VisitReason + "' ";
|
|
if (!string.IsNullOrEmpty(_VisitProposal))
|
condition += " and VisitProposal = '" + _VisitProposal + "' ";
|
|
if (!string.IsNullOrEmpty(_VisitPeople))
|
condition += " and VisitPeople = '" + _VisitPeople + "' ";
|
|
if (_BeginVisitTime.HasValue)
|
condition += string.Format(" and CAST(VisitTime AS DATE) >='{0}' ", _BeginVisitTime);
|
|
if (_EndVisitTime.HasValue)
|
condition += string.Format(" and CAST(VisitTime AS DATE) <='{0}' ", _EndVisitTime);
|
|
if (_DegreeImportanId.HasValue)
|
condition += " and DegreeImportanId = '" + _DegreeImportanId + "' ";
|
|
if (!string.IsNullOrEmpty(_Mobile))
|
condition += " and Mobile = '" + _Mobile + "' ";
|
|
if (!string.IsNullOrEmpty(_QQ))
|
condition += " and QQ = '" + _QQ + "' ";
|
|
if (_MoneyStatus.HasValue)
|
{
|
switch (_MoneyStatus)
|
{
|
case 1:
|
condition += " and OrderReceiveMoney >= OrderMoney ";
|
break;
|
case 2:
|
condition += " and OrderReceiveMoney = '0' ";
|
break;
|
case 3:
|
condition += " and OrderReceiveMoney < OrderMoney and OrderReceiveMoney > 0 ";
|
break;
|
default:
|
break;
|
}
|
}
|
|
List<Soft_SellRecord> m_Soft_SellRecordList = _dataBase.SelectModel<Model.Soft_SellRecord>(" SUM(OrderMoney) AS AllMoney,SUM(OrderReceiveMoney) AS AllRecive, SUM(CASE WHEN OrderMoney>OrderReceiveMoney THEN (OrderMoney-OrderReceiveMoney) ELSE 0 END) AS AllBalance ", " Soft_SellRecord ", condition) as List<Soft_SellRecord>;
|
if (m_Soft_SellRecordList.Count > 0)
|
{
|
return m_Soft_SellRecordList[0];
|
}
|
else
|
{
|
Soft_SellRecord m_Soft_SellRecord = new Soft_SellRecord();
|
m_Soft_SellRecord.AllMoney = 0;
|
return m_Soft_SellRecord;
|
}
|
}
|
catch (Exception ex)
|
{
|
throw ex;
|
}
|
}
|
|
/// <summary>
|
/// 获取订单号
|
/// </summary>
|
/// <returns></returns>
|
public string LoadOrderNum()
|
{
|
string res = "";
|
|
List<Soft_SellRecord> m_Soft_SellRecordList = _dataBase.SelectModel<Model.Soft_SellRecord>(" * ", " Soft_SellRecord ", " 1=1 and OrderNum like '" + DateTime.Now.ToString("yyyyMMdd") + "%' order by Keyid DESC") as List<Soft_SellRecord>;
|
if (m_Soft_SellRecordList != null && m_Soft_SellRecordList.Count > 0)
|
{
|
res = DateTime.Now.ToString("yyyyMMdd") + (int.Parse(m_Soft_SellRecordList[0].OrderNum.Substring(8, 3)) + 1).ToString("000");
|
}
|
else
|
{
|
res = DateTime.Now.ToString("yyyyMMdd") + "001";
|
}
|
|
return res;
|
}
|
}
|
}
|