📄 salecount.cs
字号:
namespace PowerEasy.SqlServerDal.Shop
{
using Microsoft.Practices.EnterpriseLibrary.Data;
using PowerEasy.Common;
using PowerEasy.IDal.Shop;
using PowerEasy.Model.Shop;
using PowerEasy.SqlServerDal;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
using System.Text;
public sealed class SaleCount : ISaleCount
{
private int m_TotalOfSaleCount;
public IList<SaleCountInfo> GetSaleCountList(int startRowIndexId, int maxNumberRows, string infoType, string searchType, string keyword, int orderType)
{
string str;
Database database = DatabaseFactory.CreateDatabase();
DbCommand storedProcCommand = database.GetStoredProcCommand("PR_Shop_Statistics_GetList");
database.AddInParameter(storedProcCommand, "@StartRows", DbType.Int32, startRowIndexId);
database.AddInParameter(storedProcCommand, "@PageSize", DbType.Int32, maxNumberRows);
database.AddInParameter(storedProcCommand, "@ID", DbType.String, "P.ProductID");
database.AddInParameter(storedProcCommand, "@Group", DbType.String, "Group by P.ProductID");
if ((orderType == 0) || (orderType == 1))
{
database.AddInParameter(storedProcCommand, "@SortColumn", DbType.String, "SUM(I.Amount)");
if (orderType == 1)
{
database.AddInParameter(storedProcCommand, "@Sorts", DbType.String, "ASC");
}
else
{
database.AddInParameter(storedProcCommand, "@Sorts", DbType.String, "DESC");
}
}
else
{
database.AddInParameter(storedProcCommand, "@SortColumn", DbType.String, "SUM(I.SubTotal)");
if (orderType == 3)
{
database.AddInParameter(storedProcCommand, "@Sorts", DbType.String, "ASC");
}
else
{
database.AddInParameter(storedProcCommand, "@Sorts", DbType.String, "DESC");
}
}
database.AddInParameter(storedProcCommand, "@TableName", DbType.String, "PE_OrderItem I inner join PE_CommonProduct P on I.ProductID=P.ProductID and I.TableName=P.TableName");
StringBuilder builder = new StringBuilder();
if (string.IsNullOrEmpty(infoType) || (infoType == "All"))
{
database.AddInParameter(storedProcCommand, "@StrColumn", DbType.String, " Max(I.ProductID) as ProductID,Max(I.TableName) as TableName,Max(P.ProductName) as ProductName,Max(P.Unit) as Unit,sum(I.Amount) as tAmount,sum(I.SubTotal) as tSubTotal ");
builder.Append("I.OrderID in (select OrderID from PE_Orders where (MoneyReceipt>=MoneyTotal or MoneyReceipt>0) And DeliverStatus<=1)");
}
else
{
database.AddInParameter(storedProcCommand, "@StrColumn", DbType.String, " Max(I.ProductID) as ProductID,Max(I.TableName) as TableName,Max(P.ProductName) as ProductName,Max(P.Unit) as Unit,sum(I.Amount) as NoDeliverAmount ");
builder.Append("I.OrderID in (select OrderID from PE_Orders where MoneyReceipt>=MoneyTotal)");
}
if (!string.IsNullOrEmpty(searchType) && ((str = searchType) != null))
{
if (!(str == "Day"))
{
if (str == "Week")
{
builder.Append(" and datediff(ww,I.BeginDate,GetDate())<1");
}
else if (str == "Month")
{
builder.Append(" and datediff(m,I.BeginDate,GetDate())<1");
}
else if (str == "ProductName")
{
builder.Append(" and P.ProductName like '%" + keyword + "%'");
}
else if (str == "InputTime")
{
builder.Append(" and I.BeginDate='" + keyword + "'");
}
}
else
{
builder.Append(" and datediff(dd,I.BeginDate,GetDate())<1");
}
}
database.AddInParameter(storedProcCommand, "@Filter", DbType.String, builder.ToString());
database.AddOutParameter(storedProcCommand, "@Total", DbType.Int32, maxNumberRows);
IList<SaleCountInfo> list = new List<SaleCountInfo>();
using (NullableDataReader reader = new NullableDataReader(database.ExecuteReader(storedProcCommand)))
{
while (reader.Read())
{
list.Add(SaleCountInfoFromrdataReader(reader, infoType));
}
}
this.m_TotalOfSaleCount = DataConverter.CLng(database.GetParameterValue(storedProcCommand, "@Total"));
return list;
}
public int GetTotalOfSaleCount()
{
return this.m_TotalOfSaleCount;
}
private static SaleCountInfo SaleCountInfoFromrdataReader(NullableDataReader dataReader, string infoType)
{
SaleCountInfo info = new SaleCountInfo();
info.ProductId = dataReader.GetInt32("ProductID");
info.ProductName = dataReader.GetString("ProductName");
info.Unit = dataReader.GetString("Unit");
info.TableName = dataReader.GetString("TableName");
if (infoType == "NoDeliver")
{
info.NoDeliverAmount = dataReader.GetInt32("NoDeliverAmount");
return info;
}
info.TotalAmount = dataReader.GetInt32("tAmount");
info.SubTotal = dataReader.GetDecimal("tSubTotal");
return info;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -